开发者社区> 问答> 正文

我有一些代码,其中的一个命令在终端上运行正常,但是从脚本运行时失败

显示脚本无法在最后一条命令上运行。

在终端中单独运行时,该命令运行良好。我尝试将!...部分放入参数中,使用各种括号和换行符甚至使用完整路径将其移动。我对替代解决方案不感兴趣-我对为什么该解决方案不能在脚本中特别工作感到兴趣。

#!/bin/bash
    mkdir alllogs
    for i in $(locate *.log); do cp $i alllogs/; done
    tar -zcvf alllogs/logs.gz alllogs/*
    rm -v alllogs/!('logs.gz')

该脚本从Linux系统收集各种日志,并将其压缩为单个文件,之后,它会擦除​​日志副本,而仅保留压缩文件。但是,删除副本的命令在通过脚本运行时失败,但在终端上可以正常工作。给出的错误是:

./x.sh: line 7: syntax error near unexpected token `('
    ./x.sh: line 7: `rm -v alllogs/!('logs.gz')'

展开
收起
祖安文状元 2020-01-06 16:26:34 704 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
15分钟打造你自己的小程序 立即下载
小程序 大世界 立即下载
《15分钟打造你自己的小程序》 立即下载