Is it possible to run a command multiple times with different parameters?
Something like:
sudo apt-get install asd && install qwe && remove ert && autoremove && autoclean
Is it possible to run a command multiple times with different parameters?
Something like:
sudo apt-get install asd && install qwe && remove ert && autoremove && autoclean
Use either a for
loop:
for cmd in "install asd" "install qwe" "remove ert" "autoremove" "autoclean"; do sudo apt-get $cmd; done
or xargs
:
echo -e "install asd\ninstall qwe\nremove ert\nautoremove\nautoclean" | xargs -I "#" sudo apt-get "#"
If you are working from the command line, you can probably use the following: once you ran command parameter1
, repeat command
with parameter2
instead typing:
^paramater1^parameter2
I have two files: a1
and a2
. Let's ls -l
the first:
$ ls -l a1
-rw-r--r-- 1 me me 21 Apr 21 16:43 a1
Now let's do the same for 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
You can find more tricks like this in What is your single most favorite command-line trick using Bash?.
This loops a set of parameters and applies them to the same command. There is no error checking, unlike in your example which will fail if one of the earlier commands fails
for param in asd qwe ert; do install $param; done
No. Unfortunately, the shell cannot read your mind.
You could do something like this:
alias sag="sudo apt-get"
sag install asd qwe && sag remove ert && sag autoremove && sag autoclean
Although I'm not convinced that you really want &&
there; you might be just as happy with ;
In the most general case, if you have a set or parameters you want to loop over, perhaps try
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
or perhaps
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