在給出 shell 命令的範例時,人們通常會在每行前面加上前綴 來$
說明它應該在終端機中運行。最近我遇到了它這個 Github 頁面。
$ sudo apt-get install curl netcat-openbsd bc pv
$ wget https://raw.githubusercontent.com/neutronth/speedtest-lite/master/speedtest-lite
當這些行被三次點擊時,美元符號(作為該行的一部分)當然是選擇的一部分。有沒有辦法設定我的終端(我正在使用終結者),以便 if$
是命令的第一個字符,忽略它?
答案1
我開始回答這個問題,結果比我想像的複雜一些。使用一點 bash 魔法:
cat file | while read x; do OUTPUT=$(echo $x | sed 's/^.//'); eval $OUTPUT; done
其作用是將檔案列印到標準輸出,讀取每一行,刪除第一個字符,並將結果儲存在 $OUTPUT 中,然後使用 eval 將 $OUTPUT 中的行作為命令運行。使用 eval 時要小心,該腳本將作為命令運行整個文件。