#!/bin/sh
tenTimes(){
expr "$1" \* 10
}
table(){
printf '%s\t%s\n' \#Value Result
for a; do
printf '%s\t%s\n' "$a" "$(tenTimes "$a")"
done
}
table 1 5
Saída:
#Value Result
1 10
5 50
Se eu tenho um programa que multiplica o valor fornecido pelo usuário por 10, como eu escrevo outro script bash que tenha argumentos passados para ele e pegue esses argumentos e colete a saída do outro programa e organize-os em uma tabela?
Por exemplo:
[user]$ table 1 5
#
#Value Result
1 10
5 50
[user]$
#!/bin/sh
tenTimes(){
expr "$1" \* 10
}
table(){
printf '%s\t%s\n' \#Value Result
for a; do
printf '%s\t%s\n' "$a" "$(tenTimes "$a")"
done
}
table 1 5
Saída:
#Value Result
1 10
5 50
Você pode fazê-lo por meio de um interpretador de shell com um caminho absoluto ou relativo;
/bin/sh /usr/local/bin/script
/usr/sbin/ksh ~/script
Talvez você queira usar algumas funções como uma biblioteca incluída;
#!/bin/sh
func_a() { echo $(($1%42)); }
E em outro arquivo:
#!/bin/sh
. ~/path/to/func_a_file
func_a
Ou talvez você queira chamar o script enquanto atribui os resultados como uma variável:
var1=$(~/path/to/script)