ユーザー指定の値に10を掛けるプログラムがある場合、パラメータが渡され、そのパラメータを取得し、他のプログラムの出力を収集してテーブルに編成する別のbashスクリプトをどのように作成しますか?
たとえば、
[user]$ table 1 5
#
#Value Result
1 10
5 50
[user]$
答え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
出力:
#Value Result
1 10
5 50
答え2
絶対パスまたは相対パスを使用して、シェルソルバーを介してこれを実行できます。
/bin/sh /usr/local/bin/script
/usr/sbin/ksh ~/script
たぶん含まれているライブラリのようなものを使用したいかもしれません。
#!/bin/sh
func_a() { echo $(($1%42)); }
他のファイルから:
#!/bin/sh
. ~/path/to/func_a_file
func_a
あるいは、結果を変数に割り当てながらスクリプトを呼び出すこともできます。
var1=$(~/path/to/script)