Bash

是否有一個無管道、簡單的單行程序來為文件中的每一行執行命令?

  • September 23, 2022

例如,

# a demonstration of the functionality
cat dependencies | xargs -n 1 pip install -U  

# expressed as a non-simple, pipeless one liner
awk '{system("pip install -U $0")}' dependencies

似乎應該有一些命令用於這個確切的任務,只有一個標誌,但我不知道它是什麼。有這樣的事嗎?

也許你只是想要:

xargs -n 1 pip install -U < dependencies
# or perhaps more readable:
<dependencies xargs -n 1 pip install -U
# and if you don't want to | bash it:
<dependencies xargs -I% -d" " -n 1 bash -c "pip install -U %"

pip install -U使用每行的內容作為額外參數呼叫一次,您需要 GNUxargs並且:

xargs -rd '\n' -n1 -a dependencies pip install -U

如果沒有-d '\n'它,文件中的每個單詞都會傳遞給pip install -U,請記住,xargs它會進行自己的引用處理(與任何現代 shell 中的引用處理不同)。

引用自:https://unix.stackexchange.com/questions/718425