我有简单的 bash 命令需要放入 shell:
`for f in $(ls); do echo "File -> $f"; done`
我得到的是:
-bash: File: command not found
我不明白为什么 bash 试图执行 echo 语句而不是打印它......
你不应该真正解析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 '{}' \;
反引号导致执行。反引号内的命令输出一个字符串,反引号将该字符串作为命令执行。
为什么不$(find . -mindepth 1 -maxdepth 1 -type d ! -name index -printf '%f/* ')
呢?
我在sh
模式下使用它,工作正常。在命令的开始和结束时移除背杆,它会起作用。