#!/bin/bash
function0()
{
local t1=$(exit 1)
echo $t1
}
function0
echo
null 値を印刷します。私は期待:
1
変数に終了t1
コマンドの戻り値が割り当てられていないのはなぜですか1
?
ベストアンサー1
local t1=$(exit 1)
シェルに次のように教えてください。
exit 1
サブシェルで実行します。- その出力(標準出力に印刷されたテキストなど)を関数
t1
のローカル変数に保存します。
したがって、t1
空のままで終わるのが正常です。
($()
と呼ばれる。コマンドの置き換え.)
終了コードは常にに割り当てられているため、$?
次のことができます。
function0()
{
(exit 1)
echo "$?"
}
希望の効果を得るために。もちろん、$?
他の変数に割り当てることもできます。
function0()
{
(exit 1)
local t1=$?
echo "$t1"
}