這裏是單行我感興趣的(尤其是在可變out
):指定操作數DIRNAME作爲一個bash變量內部回聲
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
所以我使用s英格爾和雙引號:
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})
沒有呼應的是。
任何想法如何做到這一點?
該變量是不必要的,但如果你打算使用它,你*必須*引用擴展。 – chepner