3

まず、bash 関数の戻りメソッドをテストするためのソースコード:

function oidev.fnc.bash.example.fncreturnstringvalue
{
  echo "ABC"
  return 1
}

および呼び出し元関数:

function oidev.fnc.bash.example.fncreturnstringvaluecaller
{
  local FNCVALUE
  local FNCSTRING
  FNCSTRING=$(oidev.fnc.bash.example.fncreturnstringvalue && FNCVALUE="$?" || FNCVALUE="$?")
   # String OK but Value empty
  echo "VALUE : $FNCVALUE" 
  echo "STRING: $FNCSTRING"
  unset FNCVALUE
  unset FNCSTRING
  oidev.fnc.bash.example.fncreturnstringvalue && FNCVALUE="$?" || FNCVALUE="$?"
    # Value OK and String on STDOUT
  echo "VALUE : $FNCVALUE" 
  echo "STRING: $FNCSTRING"
}

bash での出力:
VALUE :
STRING: ABC
ABC
VALUE : 1
STRING: (確かに空ですが、関数からエコーされます) `

そして今、私の簡単な質問:
返される文字列と返される値を 2 つの異なる変数に取得することは可能ですか?シングルライン構造?

私はグローバルを使いたくないし、if $? も使いたくない。サブコールの後!
助けてくれてありがとう、そして私のドイツ語英語でごめんなさい!

4

1 に答える 1