命令在终端中有效,但在bash脚本中无效

布莱尔·丰维尔

如果要删除当前目录中除“ myfile”以外的所有内容,可以使用

rm -r !("myfile")

但是,如果我将其放在脚本(称为cleanup)中:

#!/bin/bash
rm -r !("myfile")

我得到:

pi@raspberrypi:~/tmp $ ./cleanup
./cleanup: line 2: syntax error near unexpected token `('
./cleanup: line 2: `rm -r !("file2")'

如果我跑步

ps -p $$

我可以看到我的终端正在使用bash,

 PID TTY          TIME CMD
1345 pts/3    00:00:02 bash

所以我不清楚是什么问题。


笔记:

  1. 我意识到,如果脚本实际起作用,它将被删除。因此,我的脚本实际上将更像是:rm -r !("cleanup"|"myfile"),但是错误消息是相同的。
  2. 如blockquote所示,它位于基于Debian的Raspbian OS(9-Stretch)上。
  3. 我觉得这个问题注定是重复的,但我找不到。有一个类似的问题,但这是关于继承变量的,因此不能解决我的问题。
本杰明W.

模式是扩展的glob许多发行版都为交互式外壳启用了此功能,但非交互式外壳没有启用。你可以用!(pattern-list)

$ shopt extglob
extglob         on
$ bash -c 'shopt extglob'
extglob         off

要修复脚本,您必须将其打开:添加

shopt -s extglob

在它的开始。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

代码在终端中有效,但在脚本中无效

来自分类Dev

为什么此命令“google-auth”在终端中有效,但在 bash 脚本中无效?

来自分类Dev

此命令在终端中有效,但在Shell脚本中无效

来自分类Dev

Ubuntu-“ sudo iptables”命令在终端中有效,在bash脚本中无效

来自分类Dev

导出变量在终端中有效,但在 shell 脚本中无效

来自分类Dev

NVM命令在终端中有效,但在屏幕中无效

来自分类Dev

为什么powershell命令在终端中有效但在lnk文件中无效?

来自分类Dev

历史命令在终端中有效,但作为bash脚本编写时无效

来自分类Dev

命令在crontab中失败,但在终端中有效

来自分类Dev

脚本在 CodeCademy 中有效,但在命令行中无效

来自分类Dev

Linux。为什么我的 Linux 命令在终端上有效,但在脚本中无效

来自分类Dev

命令在脚本(或-c)中有效,但在直接运行时(在交互式shell中)则无效

来自分类Dev

Bash脚本不起作用,但在Mac终端上,脚本中的那些命令有效

来自分类Dev

Segmentation Fault(Core Dump)-代码在VS中有效,但在Linux终端中无效

来自分类Dev

matplotlib pyplot.plt.style在终端中有效,但在SublimeText,PyCharm或BBEdit中无效

来自分类Dev

Flutter CLI 在 mac 终端中有效,但在 VSCode 或 Android Studio 中无效

来自分类Dev

更新集命令在 Access 中有效,但在带有 @parameters 的 Visual Studio 中无效

来自分类Dev

使用变量的查询在PHPMyAdmin中有效,但在PHP脚本中无效

来自分类Dev

使用变量的查询在PHPMyAdmin中有效,但在PHP脚本中无效

来自分类Dev

zip在外壳中有效,但在Python脚本中无效

来自分类Dev

jQuery 脚本在 HTML 中有效,但在外部文件中无效

来自分类Dev

git clone在git shell中有效,但在Windows命令行中无效

来自分类Dev

命令在“运行”中有效,但在“ CMD”或“呼叫外壳”中无效

来自分类Dev

Xclip命令在Shell中有效,但在键盘快捷方式中无效

来自分类Dev

Oracle 命令在数据库中有效,但在 SQLPlus 中无效

来自分类Dev

“ g ++”在命令提示符下有效,但在VSCode终端中无效

来自分类Dev

为什么此命令在我的终端上有效,但在我的代码中无效?

来自分类Dev

函数名称在bash中有效,但在sh中无效

来自分类Dev

echo %JAVA_HOME% 在 cmd 中有效,但在 git bash 中无效

Related 相关文章

  1. 1

    代码在终端中有效,但在脚本中无效

  2. 2

    为什么此命令“google-auth”在终端中有效,但在 bash 脚本中无效?

  3. 3

    此命令在终端中有效,但在Shell脚本中无效

  4. 4

    Ubuntu-“ sudo iptables”命令在终端中有效,在bash脚本中无效

  5. 5

    导出变量在终端中有效,但在 shell 脚本中无效

  6. 6

    NVM命令在终端中有效,但在屏幕中无效

  7. 7

    为什么powershell命令在终端中有效但在lnk文件中无效?

  8. 8

    历史命令在终端中有效,但作为bash脚本编写时无效

  9. 9

    命令在crontab中失败,但在终端中有效

  10. 10

    脚本在 CodeCademy 中有效,但在命令行中无效

  11. 11

    Linux。为什么我的 Linux 命令在终端上有效,但在脚本中无效

  12. 12

    命令在脚本(或-c)中有效,但在直接运行时(在交互式shell中)则无效

  13. 13

    Bash脚本不起作用,但在Mac终端上,脚本中的那些命令有效

  14. 14

    Segmentation Fault(Core Dump)-代码在VS中有效,但在Linux终端中无效

  15. 15

    matplotlib pyplot.plt.style在终端中有效,但在SublimeText,PyCharm或BBEdit中无效

  16. 16

    Flutter CLI 在 mac 终端中有效,但在 VSCode 或 Android Studio 中无效

  17. 17

    更新集命令在 Access 中有效,但在带有 @parameters 的 Visual Studio 中无效

  18. 18

    使用变量的查询在PHPMyAdmin中有效,但在PHP脚本中无效

  19. 19

    使用变量的查询在PHPMyAdmin中有效,但在PHP脚本中无效

  20. 20

    zip在外壳中有效,但在Python脚本中无效

  21. 21

    jQuery 脚本在 HTML 中有效,但在外部文件中无效

  22. 22

    git clone在git shell中有效,但在Windows命令行中无效

  23. 23

    命令在“运行”中有效,但在“ CMD”或“呼叫外壳”中无效

  24. 24

    Xclip命令在Shell中有效,但在键盘快捷方式中无效

  25. 25

    Oracle 命令在数据库中有效,但在 SQLPlus 中无效

  26. 26

    “ g ++”在命令提示符下有效,但在VSCode终端中无效

  27. 27

    为什么此命令在我的终端上有效,但在我的代码中无效?

  28. 28

    函数名称在bash中有效,但在sh中无效

  29. 29

    echo %JAVA_HOME% 在 cmd 中有效,但在 git bash 中无效

热门标签

归档