在给出 shell 命令示例时,人们通常会在每行前面加上 ,以$
说明应该在终端中运行。最近我在这个 Github 页面。
$ sudo apt-get install curl netcat-openbsd bc pv
$ wget https://raw.githubusercontent.com/neutronth/speedtest-lite/master/speedtest-lite
当三次单击这些行时,美元符号(该行的一部分)当然是选择的一部分。有没有办法设置我的终端(我使用的是 Terminator),以便如果$
是命令的第一个字符,则忽略它?
答案1
我打算回答这个问题,但结果比我想象的要复杂一些。用一点 bash magic:
cat file | while read x; do OUTPUT=$(echo $x | sed 's/^.//'); eval $OUTPUT; done
其作用是将文件打印到标准输出,读取每一行,删除第一个字符,并将结果存储在 $OUTPUT 中,然后使用 eval 将 $OUTPUT 中的行作为命令运行。使用 eval 时要小心,此脚本将把整个文件作为命令运行。