我是bash的总noob,所以这很可能是语法错误,但我找不到任何在我的搜索中用于我的语法的东西。bash脚本 - 执行find命令不会输出
从终端,运行
find . -name "*g*"
结果
./.grepdir.sh.swp
./grepdir.sh
但是,运行称为grepdir.sh
#!/usr/bin/bash
startdir="$1";
pattern="$2";
find_cmd="find $startdir -name \"$pattern\"";
echo "$find_cmd";
cmd="$($find_cmd)";
echo "$cmd";
从终端作为grepdir.sh . "*g*"
结果这个bash脚本在:
[[email protected]~/dir]$ grepdir.sh . "*g*"
find . -name "*g*"
[[email protected]~/dir]$
这意味着cmd必须为空。但根据我的理解,存储在find_cmd中的字符串已执行并且输出捕获到cmd,这意味着它不应该为空。我有错误观念,还是我的语法太糟糕了?
感谢
使用'CMD = $(bash -c“$ find_cmd”)似乎解决了这个问题。但我不明白你不工作的原因。 – tivn