如果我有一个文本文件,每行都有一个命令,我该如何让终端运行每一行作为一个命令?我不想一次复制粘贴一行。这个文件不一定要是文本文件... 它可以是任何能够工作的文件。
example.txt
:sudo command 1
sudo command 2
sudo command 3
您可以使用这些命令创建一个Shell脚本,然后chmod +x <脚本名.sh>
,最后只需运行它即可。
./scriptname.sh
编写bash脚本非常简单
示例sh文件:
#!/bin/sh
sudo command1
sudo command2
.
.
.
sudo commandn
.txt
,也可以正常工作。 - Manlio#!/bin/sh
!你只需要按照 kclair
的指示执行以下命令:sh your_file_here_and_it_can_have_any_random_filename
。 - aqnchmod +x example.txt
,则shell会执行一个等效于使用路径名作为第一个操作数调用shell的命令。 - Diego Torres Milanobash example.txt
sh example.txt
执行
. example.txt
这正好做到了你要求的事情,而不会在文件上设置可执行标志或运行额外的bash实例。
for i in `cat foo.txt`
do
sudo $i
done
如果命令带有参数(即行中存在空格),您可能需要花点心思来保护空格,使整个字符串被sudo
视为命令。但它可以让您了解如何入手。
foo.txt
文件中的某一行包含多个标记,那么这是一个糟糕的建议。如果确实需要在脚本中的每个命令前使用sudo
,则最好使用sudo -s <foo.txt
。请参见https://mywiki.wooledge.org/DontReadLinesWithFor。 - tripleeecat /path/* | bash
或者
cat commands.txt | bash
bash
,请使用重定向。 - Diego Torres Milano