KSHでpwd戻り値を使用する関数

KSHでpwd戻り値を使用する関数

私は小さなスクリプトを書こうとしていますksh

fDestExists (){
    cd /tmp
    read vANSWER?" >> Do you want to create a repository in pwd ? Type YES or NO"
        echo "    |----> $(fGetDatum) You typed: " $vANSWER         
        if [ "$vANSWER" = "YES" ]; then
                read vANSWER2?" >> Type your repository's name."
                mkdir -p $vANSWER2
                cd $vANSWER2
                echo "    |----> Logs will be coped in pwd."        
        elif [ "$vANSWER" = "NO" ]; then
            echo "    |----> Logs will be coped in pwd."        
        else 
            echo "    |----> You typed a wrong answer; exiting."        
            exit 1
        fi  
    pwd #return
}

これにはいくつかの問題があります。

  1. echoでpwd値をどのように使用しますか?

  2. 値を返すには、最後の行でecho [yourValue]を使用すると機能するという内容を読みました。その後、関数が呼び出される場所で$?を使用できると思いました。それでは、pwdで同じ動作をどのように実行できますか?

ベストアンサー1

1:PWD変数を直接使用できます。例:

echo "    |----> Logs will be coped in $PWD."

2:$?最後のコマンドの戻り値(数値)を取得するために使用されます。ここでは文字列を渡すことはできません。戻り値は成功した場合は0、失敗した場合は別の値でなければなりません。この情報を取得するには、return 0または を使用します。return -1スクリプトの現在のディレクトリを変更すると、$PWD呼び出し側はそれを使用できます。

おすすめ記事