簡體   English   中英

echo $ PATH從字面上顯示“ $ PATH”作為輸出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM