我是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