这是我感兴趣的单行代码(尤其是在变量中out
):
find ~ | head -3 | while read f; do out=$(dirname ${f}); echo ${out}; done
在将它传递到另一个程序之前,我需要回显这个单行,但它失败了:
echo "find ~ | head -3 | while read f; do out=$(dirname ${f}); echo ${out}; done"
带有以下消息:
dirname: missing operand
Try `dirname --help' for more information.
find ~ | head -3 | while read f; do out=; echo ; done
所以我使用单引号和双引号:
echo "find ~ | head -3 | while read f; do out=$(dirname "'${f}'"); echo "'${out}'"; done"
返回没有错误:
find ~ | head -3 | while read f; do out=.; echo ${out}; done
但$(dirname ${f})
不是按原样回显。
知道怎么做吗?