在 Bash 中以命令的形式运行文本文件

如果我有一个文本文件与一个单独的命令在每一行,我如何使终端运行每一行作为一个命令?我只是不想一次复制粘贴一行。它不必是一个文本文件... 它可以是任何类型的文件,将工作。

返回文章页面

sudo command 1
sudo command 2
sudo command 3
156956 次浏览

您可以使用这些命令创建一个 shell 脚本,然后是 chmod +x <scriptname.sh>,然后再运行它

./scriptname.sh

编写 bash 脚本非常简单

Mockup sh 文件:

#!/bin/sh
sudo command1
sudo command2
.
.
.
sudo commandn

你也可以用 shell 运行它,例如:

bash example.txt


sh example.txt

你可以使用这样的东西:

for i in `cat foo.txt`
do
sudo $i
done

不过,如果命令有参数(即行中有空格) ,您可能需要稍微修改一下,以保护空格,从而使整个字符串被 sudo视为一个命令。但是它给你一个如何开始的想法。

执行

. example.txt

这完全符合您的要求,而不需要在文件上设置可执行标志或运行额外的 bash 实例。

有关详细说明,请参阅例如 https://unix.stackexchange.com/questions/43882/what-is-the-difference-between-sourcing-or-source-and-executing-a-file-i

cat /path/* | bash

或者

cat commands.txt | bash