この結果をシェル変数に割り当てる方法は?出力をシェルスクリプト変数に割り当てる方法は?
入力:
echo '1+1' | bc -l
出力:
2
試み:
(動作しませんでした)
#!bin/sh
a=echo '1+1' | bc -l
echo $a
この結果をシェル変数に割り当てる方法は?出力をシェルスクリプト変数に割り当てる方法は?
入力:
echo '1+1' | bc -l
出力:
2
試み:
(動作しませんでした)
#!bin/sh
a=echo '1+1' | bc -l
echo $a
コマンド置換と呼ばれるシェル機能を探しています。
CMD置換の2つの形態
バック石時代にオリジナル、が、すべてのUnixライクなシェル(だけでなく、ほとんどすべて)で完全に移植し、利用可能ながあります。
あなたは
$ a=$(echo 1+1 | bc -l)
$ echo $a
2
$
$(cmd)
付属すなわち
$ a=`echo 1+1 | bc -l`
$ echo $a
2
$
現代、探して少ない不格好、簡単にネスト可能なCMD-置換を、囲み
あなたの「she-bang」行には#!/bin/sh
と表示されていますので、実際のUnixプラットフォームで実行している場合は、/bin/sh
はオリジナルのBourneシェルであり、上記のオプション1を使用する必要があります。
#!/bin/sh
をまだ使用しているときにオプション2を試しても問題がなければ、モダンなシェルがあります。 echo ${.sh.version}
または/bin/sh -c --version
と入力して、有用な情報があるかどうかを確認してください。バージョン番号を取得した場合は、新しいシェルに含まれる追加機能について知りたいでしょう。あなたが本当にbashの、zshの、は、ksh93の+を使用している場合は、新しい機能の
言えば、あなたは
a=$((1+1))
それとも、もっと数学演算をやっているならば、それはすべての内部にとどまるよう、あなたのサンプルコードを書き換えることができます(bc
とすることができます一方で)あなたは、余分なプロセスの作成を避けることができますが、シェルで浮動小数点演算を行うことはできませんが、いずれの場合も
((b=1+1))
echo $b
2
:スコープは、次のようなシェルの機能演算を使用することができます。
Wonderfullの説明。非常にThx。正常に動作します! – GarouDan
[コマンドからの出力に等しいBASH変数を設定する方法は?](http://stackoverflow.com/questions/4651437/how-to-set-a-bash-variable-equal-to -a-commandからの出力) – Jahid