如果我運行此命令它工作在終端罰款:命令終端而不是通過/ bin中運行/ SH
for dirname in $(ls -d dir/checkpoint/features.txt/20*);do;echo "hello";done
但是,當通過/ bin/sh的運行-c它給出了一個錯誤
/bin/sh -c "for dirname in $(ls -d dir/checkpoint/features.txt/20*);do;echo "hello";done"
錯誤:
/bin/sh: -c: line 1: syntax error near unexpected token `dir/checkpoint/features.txt/201108000'
/bin/sh: -c: line 1: `dir/checkpoint/features.txt/201108000'
我的默認的shell /斌/慶典。我似乎無法理解是什麼導致了這一點。在我的程序中運行所有shell命令的默認實現是通過給它們添加/ bin/sh -c。這是我第一次看到這個問題。有什麼建議麼?
試圖逃跑像字符」 * ... – fedorqui
是'/斌/ sh'一樣'/bin/bash'?在Solaris的舊版本上,例如'/ bin/sh'不是POSIX shell,並且不能識別'$(...)'表示法。你是否嘗試用單引用 –
由於您已經添加了另一組雙引號,因此sh不會像您認爲的那樣解析它,而是在外部使用單引號 – chris