ある関数から別の関数に変数を渡す方法

ある関数から別の関数に変数を渡す方法
updateEnvironmentField() {

          linewithoutquotes=`echo $LINE | tr -d '"'`
             b()
}

$linewithoutquotesという変数をupdateEnvironmentField()メソッドから呼び出されるb()という別のメソッドに渡したいと思います。上記の要件を達成するためにシェルスクリプトを使用する方法

答え1

b () {
    arg=$1
    # more code here
}

updateEnvironmentField () {
    linewithoutquotes=`echo $LINE | tr -d '"'`
    b "$linewithoutquotes"
}

ここでは、bコマンド置換の結果を文字列として呼び出します。このb関数は変数から文字列を受け取りますarg

printf代わりにinを使用し、スペースやワイルドカード文字などがデータを混乱させないように拡張を適切にecho引用する必要があります。パフォーマンスを向上させるために、バックティックも次のように変更しました。$LINE$(...)

updateEnvironmentField () {
    linewithoutquotes=$( printf '%s\n' "$LINE" | tr -d '"' )
    b "$linewithoutquotes"
}

bashシェルを使用している場合は、${variable//pattern}パラメータ置換を使用して二重引用符を削除できます。

updateEnvironmentField () {
    linewithoutquotes=${LINE//\"}
    b "$linewithoutquotes"
}

そうでなければ

updateEnvironmentField () {
    b "${LINE//\"}"
}

関連:

関連情報