簡體   English   中英

在 Bash 中將文本文件作為命令運行

[英]Run text file as commands in Bash

如果我有一個文本文件,每行都有一個單獨的命令,我將如何讓終端將每一行作為命令運行? 我只是不想一次復制和粘貼 1 行。 它不必是一個文本文件......它可以是任何可以工作的文件。

example.txt

sudo command 1
sudo command 2
sudo command 3

你可以用這些命令制作一個shell腳本,然后chmod +x <scriptname.sh> ,然后運行它

./scriptname.sh

編寫 bash 腳本非常簡單

樣機sh文件:

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

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

bash example.txt

sh example.txt

執行

. example.txt

這正是您所要求的,無需在文件上設置可執行標志或運行額外的 bash 實例。

有關詳細說明,請參見例如https://unix.stackexchange.com/questions/43882/what-is-the-difference-between-sourcing-or-source-and-executing-a-file-i

你可以使用這樣的東西:

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

盡管如果命令有參數(即行中有空格),您可能需要稍微調整一下以保護空格,以便sudo將整個字符串視為命令。 但它讓你知道如何開始。

cat /path/* | bash

或者

cat commands.txt | bash

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM