Como podemos alterar vários argumentos de linha de comando no terminal Linux?

1

De acordo com essa pergunta , que dizia

"Como executar um comando várias vezes?",

a resposta correta foi

for i in 'seq 10'; do command; done

Agora, se o comando tiver um argumento e cada iteração, devemos passar esse argumento para o comando automaticamente.

Como podemos fazer isso no terminal Linux?

obrigado.

    
por husin alhaj ahmade 14.09.2016 / 16:24

2 respostas

3

Com o loop que você referencia em seu comando, você está armazenando a próxima "palavra" do comando seq na variável i . Você pode usar esse valor em qualquer lugar que desejar, portanto, para passá-lo para o comando, você pode invocá-lo como command "$i"

Você pode evitar a necessidade do processo seq extra com bash , pelo menos você pode fazer como

for ((i=1; i<=10; i++)); do
    command "$i"
done

ou com expansão de chave como

for i in {1..10}; do

ou se você quiser fazer isso com a conformidade POSIX, você pode fazer algo como

i=1
while [ "$i" -lt 11 ]; do
    command "$i"
    i=$((i+1))
done
    
por 14.09.2016 / 21:58
0
for i in 'seq 10'; do command $i; done
    
por 14.09.2016 / 22:14