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

svdrlsy4  于 2023-06-21  发布在  其他
关注(0)|答案(5)|浏览(191)

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

sudo command 1
sudo command 2
sudo command 3
dojqjjoe

dojqjjoe1#

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

./scriptname.sh

编写bash脚本非常简单
Mockup sh文件:

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

kxkpmulp2#

您也可以使用shell来运行它,例如:

bash example.txt

sh example.txt
wljmcqd8

wljmcqd83#

执行

. example.txt

这完全符合您的要求,而无需在文件上设置可执行标志或运行额外的bash示例。
有关详细说明,请参见例如https://unix.stackexchange.com/questions/43882/what-is-the-difference-between-sourcing-or-source-and-executing-a-file-i

0wi1tuuw

0wi1tuuw4#

你可以使用类似这样的东西:

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

如果命令有参数(即行中有空格),您可能必须稍微处理一下以保护空格,以便整个字符串被sudo视为命令。但它给了你一个如何开始的想法。

6ie5vjzr

6ie5vjzr5#

cat /path/* | bash

cat commands.txt | bash

相关问题