Chame um script de shell com outro

1

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]$
    
por bbycakes3 26.10.2015 / 00:07

2 respostas

1

#!/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
    
por 26.10.2015 / 00:19
0

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)
    
por 26.10.2015 / 01:53