そのため、大容量ファイルを変数として保存するときにパラメータリストが長すぎる問題を解決するために何かを試してみます。
lets_build_something_together ()
{
file_name="$@";
short=$(basename "${file_name}" | sed -e 's/ /_/g');
unset make_file_array;
while read file_array; do
export make_file_array_${short}+=($(<${file_array}));
done < <(split --verbose -b 1024 "${file_name}" | awk -F\' '/file/{print $2}')
}
配列の「(」は構文エラーを引き起こします。新しい配列を定義するときにエクスポートmake_file_array_$ {short} = valueを使用できることがわかりました。
例:
$ export bar=foo
$ export ${bar}=wtf
$ declare -p foo
declare -x foo="wtf"
その後、2つの文字列を連結できます。
$ export ${bar}+=wtf
$ declare -p foo
declare -x foo="wtfwtf"
しかし、配列を使用すると、これを行うことはできないようです。
$ unset bar
$ declare -a bar
$ export ${foo}+=(valueone)
bash: syntax error near unexpected token `('
$ declare -p bar
declare -a bar
私はこれができなければならない。しかし私は証明されているように信じる:
$ export bar+=(foo)
$ export bar+=(demo)
$ export foo=bar
$ declare -p bar
declare -ax bar=([0]="foo" [1]="demo")
$ declare -p ${foo}
declare -ax bar=([0]="foo" [1]="demo")
配列に別の変数を定義するときに変数を使用できますか?それともバグですか?
このように定義された配列の変数名の一部を別の変数に渡す方法を知っている人はいますか?