linux脚本附近有语法错误,linux – 选择文件时bash脚本中的意外标记’附近的语法错误...

运行此脚本bash ./cleanup.bash

#!/bin/bash

## going to dir 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)’

但如果我直接在终端中运行没有问题rm -rf!(composer.json | .git)

我尝试剥离所有其他行,仍然得到错误.

如何在bash脚本中正确输入?

解决方法:

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

由于每当以#!/ bin / bash启动时bash脚本启动一个新的子shell,父shell中设置的扩展选项可能不会反映在新shell中.为了使其生效,请在剧本之后将其设置在脚本中

#!/bin/bash

shopt -s extglob

## going to dir moving stuff

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

标签:bash,linux,terminal

来源: https://codeday.me/bug/20190519/1132719.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值