gpt4 book ai didi

linux - Bash脚本选择文件时报错 "syntax error near unexpected token ' ('"

转载 作者:IT王子 更新时间:2023-10-29 01:20:44 24 4
gpt4 key购买 nike

运行这个脚本,bash ./cleanup.bash

#!/bin/bash
## Going to directory-moving stuff
rm -rf !(composer.json|.git)

给出错误:

cleanup.bash: line 10: syntax error near unexpected token '('cleanup.bash: line 10: 'rm -rf !(composer.json|.git)'

但是如果我直接在terminal中运行,没有任何问题:

rm -rf !(composer.json|.git)

我尝试删除所有其他行,但仍然出现错误。

如何在 Bash 脚本中正确输入它?

我在 Ubuntu 上,这一切都是在本地完成的,而不是在远程。

最佳答案

我猜你的问题是由于从脚本运行时没有设置 shell 扩展 glob 选项。当您声称它在命令行中工作时,您已经以某种方式设置了允许 !() glob 的 extglob 标志。

由于 Bash 脚本无论何时以 #!/bin/bash 启动,都会启动一个新的子 shell,因此在父 shell 中设置的扩展选项可能不会反射(reflect)在新的 shell 中。为使其生效,在shebang之后的脚本中设置:

#!/bin/bash

shopt -s extglob

## Going to directory-moving stuff
rm -rf !(composer.json|.git)

关于linux - Bash脚本选择文件时报错 "syntax error near unexpected token ' ('",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47304329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com