kshの添え字からの戻り値

kshの添え字からの戻り値

以下のようにスクリプト内でスクリプトを呼び出したいと思います。

weeknum=$(getweek )

ここで getweek はスクリプトファイルです。 Weeknumに値を返すように下付き文字ファイルを作成する方法。戻り値または終了を使用し、状態を戻り値として入力する必要がありますか?

答え1

このような用途にうまく活用してくださいecho

$ cat new
echo 1
$ number=$(./new)
$ echo $number
1

私はこれがその目的を達成すると思います。また、new上記は作成したいスクリプトであることに注意してください。

私が間違って考えたことがある場合は、以下にコメントしてください。

答え2

構文$(cmd)キャプチャ標準出力(末尾の改行を削除cmd)。

したがって、あなたがすべきことはgetweek情報を出力するだけです。

#! /bin/sh -
date +%V # or %U or %W

dateから継承した週番号をstdoutに出力しますsh。この場合、weeknum=$(getweek)シェルはそれをパイプまたはソケットのペアに設定し、もう一方の端ではシェルは出力を読み取り、変数に保存しますweeknum

終了状態で週番号を返すこともできます。

#! /bin/sh -
exit "$(date +%W)"

以下から入手できます。

getweek
weeknum=$?

しかし、私はこれに反対すると助言します。終了ステータスは、エラー報告のために予約するか、true / falseの値に制限する必要があります。

通常、上記でエラーが発生した場合(プロセスのフォークまたは実行中datesh、またはプロセスが終了した場合、ゼロ以外の終了状態を取得します。これは次のように処理しないでください。州番号

答え3

これを試してみることができます

output=$(sh <scriptname>)

この場合、目標を達成するのに役立つ関数をスクリプトに書き込むこともできます。

答え4

標準出力に値を割り当てて読み取るには、任意のコマンドを使用します。

#いくつかの添字
#何かをしなさい
echo "私の値はここにあります。" # echoは標準出力に何かを入れる方法です。

実行権限を付与します。下付き文字の場合:

chmod a+rx 一部添え字

そしてそれを使う

val=$(./一部下付き文字)
echo "$val" # ここに私の値が反映されます。

return と exit は、呼び出し側に可能かどうかを通知するために使用されます。戻り値には適用されません。

関連情報