我有这个小 bash 脚本:
#!/bin/bash
PATH1="/home/user100/files"
CMD1=$(find . -type f -iname "*.sh" -exec rm -fr {} +;)
cd $PATH1
$CMD1
如果我一一运行命令,它们都会成功执行,如果我运行脚本,它什么也不做。
任何帮助或想法将不胜感激。
答案1
如果你想将命令作为字符串存储在变量中,你不应该使用 $()
CMD1="find . -type f -iname '*.sh' -exec rm -fr {} +;"
然后您稍后使用命令调用该变量 eval
。所以您的脚本应该类似于:
#!/bin/bash
PATH1="/home/user100/files"
CMD1="find . -type f -iname '*.sh' -exec rm -fr {} +;"
cd $PATH1
eval $CMD1;
然后不要忘记给予脚本执行权限
chmod +x script.sh
然后运行脚本
./script.sh