如果我有一个文本文件,每行都有一个单独的命令,我如何让终端将每行都作为命令运行?我只是不想一次复制粘贴一行。它不一定是一个文本文件。它可以是任何类型的文件,将工作。example.txt:
example.txt
sudo command 1 sudo command 2 sudo command 3
dojqjjoe1#
你可以用这些命令创建一个shell脚本,然后chmod +x <scriptname.sh>,然后运行它
chmod +x <scriptname.sh>
./scriptname.sh
编写bash脚本非常简单Mockup sh文件:
#!/bin/sh sudo command1 sudo command2 . . . sudo commandn
kxkpmulp2#
您也可以使用shell来运行它,例如:
bash example.txt sh example.txt
wljmcqd83#
执行
. example.txt
这完全符合您的要求,而无需在文件上设置可执行标志或运行额外的bash示例。有关详细说明,请参见例如https://unix.stackexchange.com/questions/43882/what-is-the-difference-between-sourcing-or-source-and-executing-a-file-i
0wi1tuuw4#
你可以使用类似这样的东西:
for i in `cat foo.txt` do sudo $i done
如果命令有参数(即行中有空格),您可能必须稍微处理一下以保护空格,以便整个字符串被sudo视为命令。但它给了你一个如何开始的想法。
sudo
6ie5vjzr5#
cat /path/* | bash
或
cat commands.txt | bash
5条答案
按热度按时间dojqjjoe1#
你可以用这些命令创建一个shell脚本,然后
chmod +x <scriptname.sh>
,然后运行它编写bash脚本非常简单
Mockup sh文件:
kxkpmulp2#
您也可以使用shell来运行它,例如:
wljmcqd83#
执行
这完全符合您的要求,而无需在文件上设置可执行标志或运行额外的bash示例。
有关详细说明,请参见例如https://unix.stackexchange.com/questions/43882/what-is-the-difference-between-sourcing-or-source-and-executing-a-file-i
0wi1tuuw4#
你可以使用类似这样的东西:
如果命令有参数(即行中有空格),您可能必须稍微处理一下以保护空格,以便整个字符串被
sudo
视为命令。但它给了你一个如何开始的想法。6ie5vjzr5#
或