gpt4 book ai didi

linux - 我有一些代码有一个在终端上运行良好但从脚本运行时失败的命令

转载 作者:太空宇宙 更新时间:2023-11-04 11:48:37 26 4
gpt4 key购买 nike

显示的脚本无法在最后一个命令中运行。

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

    #!/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')'

最佳答案

pattern matching的形式默认情况下未启用。您需要显式设置 extglob

shopt -s extglob

关于linux - 我有一些代码有一个在终端上运行良好但从脚本运行时失败的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56849416/

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