如何使用不同的参数多次运行命令?

问题描述 投票:0回答:5

是否可以使用不同的参数多次运行命令?

类似:

sudo apt-get install asd && install qwe && remove ert && autoremove && autoclean
linux bash command
5个回答
12
投票

使用

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 "#"

7
投票

如果您从命令行工作,则可以使用以下命令:运行

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 的命令行技巧是什么?中找到更多类似的技巧。


4
投票

这会循环一组参数并将它们应用于同一命令。没有错误检查,与您的示例不同,如果前面的命令之一失败,则该示例将会失败

for param in asd qwe ert; do install $param; done

0
投票

不。不幸的是,shell 无法读懂你的想法。

你可以这样做:

alias sag="sudo apt-get"
sag install asd qwe && sag remove ert && sag autoremove && sag autoclean

虽然我不相信你真的想要

&&
在那里;您可能会同样满意
;


0
投票

在最常见的情况下,如果您想要循环一组或多个参数,也许可以尝试

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
© www.soinside.com 2019 - 2024. All rights reserved.