![](/img/trans.png)
[英]grep -l 'string' path prints the path followed by 'is a directory'
[英]echo $PATH literally prints “$PATH” as the output
我想瀏覽一個文本文件,該文件每行包含一個命令。 我想閱讀每一行,執行每條命令,然后將輸出保存到文件中。
腳本中給我帶來麻煩的部分是:
echo COMMAND LOG > $dest/command.log
echo ====== >> $dest/command.log
while IFS= read -r v
do
echo ====== >> $dest/command.log
echo COMMAND: $v >> $dest/command.log
echo ======OUTPUT====== >> $dest/command.log
$v >> $dest/command.log
echo ====== >> $dest/command.log
done < "$commands"
它對除生成以下內容的“ echo $ PATH”以外的所有內容都有效:
======
COMMAND: echo $PATH
======OUTPUT======
$PATH
反正有沒有讓它正常工作? 提前致謝。
可以預料,因為您正在逐行獲取文件,所以得到的是字符串,而不是變量。 $v
是一個"$PATH"
字符串,僅此而已。
您必須eval
字符串以獲取關聯變量的值:
echo COMMAND: $(eval $v) >> $dest/command.log
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.