bash echo执行命令而不是打印它

时间:2013-06-10 13:18:21

标签: bash shell scripting

我有简单的bash命令,我需要把它放在shell中:

 `for f in $(ls); do echo "File -> $f"; done`

我得到的是:

-bash: File: command not found

我不明白为什么bash试图执行echo语句而不是打印它...

4 个答案:

答案 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/* ')

  • 没有循环shell代码
  • 输入端没有转义问题
  • 便携式

答案 3 :(得分:1)

我在sh模式下使用它,工作正常。在命令的开头和结尾处移除后挡板,它将起作用。