我有简单的bash命令,我需要把它放在shell中:
`for f in $(ls); do echo "File -> $f"; done`
我得到的是:
-bash: File: command not found
我不明白为什么bash试图执行echo语句而不是打印它...
答案 0 :(得分:3)
您should'nt be为此真正解析ls
。做类似的事情:
for f in *; do echo "File -> $f"; done
目录:
for i in *; do if [ -d $i ]; then echo "File -> $i"; fi ; done
或
find . -type d -exec echo '{}' \;
答案 1 :(得分:3)
反引号导致执行。 backtiks中的命令输出一个字符串,反引号将该字符串作为命令执行。
答案 2 :(得分:2)
为什么不$(find . -mindepth 1 -maxdepth 1 -type d ! -name index -printf '%f/* ')
?
答案 3 :(得分:1)
我在sh
模式下使用它,工作正常。在命令的开头和结尾处移除后挡板,它将起作用。