1

bashスクリプトを使用して'to_upper'関数を作成しました。

to_upper() {

    local string=$1
    echo $string | tr "[:lower:]" "[:upper:]"
    return 0
}

ただし、次の出力:

VAL=bla
echo $(to_upper bla)
echo $(to_upper $VAL)

BLA
1

ここで何が起こっているのか誰か知っていますか?

:私の例ではエラーが再現されていないようです。しかし、私が持っているのはこの状況です:

DEVICE_STATUS=$(get_device_status)
echo $DEVICE_STATUS $(to_upper $DEVICE_STATUS)

その場合、出力は次のようになります。

active 1

私の例では問題が再現されていないようですが、スクリプトにあります。

注2:問題を修正しました。get_device_statusこれは、関数のgrep出力であり、最終的にはになりました$DEVICE_STATUS

4

1 に答える 1

1

私は自分の問題を解決しました:get_device_status関数にgrepジャンクを出力するコマンドがありました$DEVICE_STATUS。問題を解決するためにgrep出力をリダイレクトします。/dev/null

この場合、の呼び出しではなく$DEVICE_STATUS、で正しい値を取得した理由はよくわかりません。echoto_upper

于 2012-11-14T10:21:28.557 に答える