このようにして、配列を環境変数として設定します。脚本test.sh
test.sh
#!/bin/bash
export STRING=( "str1" "str2" )
ソースtest.sh
今スクリプトで test-1.sh
#!/bin/bash
echo ${STRING[0]}
応答は何もない、単なる空白行STRING="str1"
ですecho $STRING
がtest-1.sh
、test.shで設定してで設定しようとすると、これは機能します。
テストはrootユーザーのみから実行されます。次に、配列をenv変数として設定して、要件に従って配列の要素を呼び出す方法を教えてください。以前、私は修正さえしようとしました、/etc/bashrc
そしてそれは何もポジティブに帰着しませんでした。
これらの変数設定を使用する必要がある多くのスクリプトを記述しなければならない場合があるため、配列を環境変数として設定する必要があります。
誰かが私が間違っているところを修正するための提案を提供できますか?
細かいマニュアルの「バグ」セクションを読んでください。
配列変数は(まだ)エクスポートできません。
ただし、多くの人がこれを実際のバグと見なしていることはわかりません。kshスタイルの配列をサポートする他のシェルは、それらをエクスポートすることもできません。
パラメータや変数、または環境を介して、配列定義を簡単に渡すことができます。ただし、通常はあまり役に立ちません。
function f {
unset -v "$2"
typeset "$2"
eval "${!1}"
typeset -p "$2"
}
typeset -a a=(a b c)
myArr=$(typeset -p a) f myArr a
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加