私はシェルスクリプトに慣れていません。次の擬似コード用のシェルスクリプトを作成したいと思います。
min=some garbage value
for(i=1 to N){ // N and n will be taken as input for the shell script.
for(j=1 to n){
val= './a.out' // call the executable a.out and take the output in val
if(val<min) // a.out is a random number generator script
min=val;
}
arr[k++]=min;
}
// Then I want to calculate the sum of the elements of the array 'arr'.
シェルスクリプトでこれを行うにはどうすればよいですか?
a.out
まあ、出力として数値文字列が生成されます。この文字列を変数に変換する必要がありますval
。どうすればいいですか?たとえば、出力はa.out
生成されますが浮動小数点ではない文字配列です。シェルスクリプトを使用して浮動小数点に変換したいのですが、実行可能ファイルのCコードを変更するアクセス権はありません。12.34
12.34
a.out
#!/bin/bash
# set min to some garbage value
min=1
N=$1
n=$2
for (( i=1; i<=$N; i++ )); do
for (( j=1; j<=$n; j++ )); do
val=$(/path/to/a.out)
val2=`echo $val | bc` // is this the correct syntax?
if (( $val2 < $min )); then
min=$val2;
fi
done
arr=("${arr[@]}" "$min")
done
# Then I want to calculate the sum of the elements of the array 'arr'.
sum=0
for (( l=0; l<${#arr[@]}; l++ )); do
sum=$( expr $sum + ${arr[$l]} )
done
echo "Sum of \$arr = ${sum}"
上記のコードは私には機能しません。
ベストアンサー1
Val=$(./a.out)
Val=`a.out`
どちらも実行され、a.out
出力をVal
。
bash または互換性のあるシェルを想定します。