是否可以使用不同的参数多次运行命令?
类似:
sudo apt-get install asd && install qwe && remove ert && autoremove && autoclean
使用
for
循环:
for cmd in "install asd" \
"install qwe" "remove ert" \
"autoremove" "autoclean"
do
sudo apt-get $cmd
done
或
xargs
:
printf '%s\n' "install asd" \
"install qwe"
"remove ert"
"autoremove"
"autoclean" |
xargs -I "#" sudo apt-get "#"
如果您从命令行工作,则可以使用以下命令:运行
command parameter1
后,用 command
重复 parameter2
,而不是键入:
^paramater1^parameter2
我有两个文件:
a1
和a2
。让我们ls -l
第一个:
$ ls -l a1
-rw-r--r-- 1 me me 21 Apr 21 16:43 a1
现在让我们对
a2
做同样的事情:
$ ^a1^a2
ls -l a2 # bash indicates what is the command being executed
-rw-r--r-- 1 me me 13 Apr 21 16:43 a2
您可以在您最喜欢的使用 Bash 的命令行技巧是什么?中找到更多类似的技巧。
这会循环一组参数并将它们应用于同一命令。没有错误检查,与您的示例不同,如果前面的命令之一失败,则该示例将会失败
for param in asd qwe ert; do install $param; done
不。不幸的是,shell 无法读懂你的想法。
你可以这样做:
alias sag="sudo apt-get"
sag install asd qwe && sag remove ert && sag autoremove && sag autoclean
虽然我不相信你真的想要
&&
在那里;您可能会同样满意;
在最常见的情况下,如果您想要循环一组或多个参数,也许可以尝试
for first in one "two, with cinnamon" three; do
for second in red yellow "odd color between brown and gray"; do
for third in 0.1 0.5 1.0 2.0; do
frobnicate --number "$first" --color "$second" --limit "$third"
done
done
done
或者也许
while read -r first second third; do
frobnicate --number "$first" --color "$second" --limit "$third"
done <<____EOF
sixty-five mauve 0.1
sixty-five crimson 0.1
fifty-eleven lilac 0.2
fifty-eleven lilac 0.5
17 black 1.0
42 black 1.0
____EOF