サブシェルスクリプトの戻り値を取得します。

サブシェルスクリプトの戻り値を取得します。

新しい.shスクリプトを起動するシェルスクリプトがあります。添え字の戻り値を変数に保存したいと思います。

このスクリプトが見つかりました。

#!/bin/bash
r=1
while [[ r -ne 0 ]]
do
r=`vx $* < \`tty\` > \`tty\``
done
exit 0

パラメータを使用してスクリプトvxを呼び出し、戻り値を変数rに格納します。 tty... とはどういう意味ですか?これは戻り値ですか? $は使えませんか?値を返すには?

ありがとうございます!

編集する:

それでは、次の文は間違っていますか?

#!/bin/bash

returnvalue=1

while  [ $returnvalue -ne 0 ]
do
    bash ./vx $1
    returnvalue=$?
done

ベストアンサー1

私は実際に次のことをしたいと思います。

#! /bin/sh -
until rv "$@"; do
  continue
done

$?通常、終了状態()の実際の値を取得する必要はなく、0がtrueかfalseを意味するのかを知る必要もありません。until, while, ... 構造体でifこの問題を解決できます。上記はcontinue単に可読性のためのものです。 no-opコマンドを含むすべてのコマンドをここに配置できます:

$*引用符を使用したり残したりしないでください$@。意味がありません。

おすすめ記事