[解決済み] bashでグローバルを使用せずに配列を返すには?
2022-12-04 01:16:34
質問
配列を作成する関数があり、その配列を呼び出し元に戻したいのですが。
create_array() {
local my_list=("a", "b", "c")
echo "${my_list[@]}"
}
my_algorithm() {
local result=$(create_array)
}
これでは、私は展開された文字列を得るだけです。 グローバルなものを使用せずにmy_listをquot;return"するにはどうしたらよいでしょうか?
どのように解決するのですか?
グローバルで何が問題なのでしょうか?
配列を返すのは本当に実用的ではありません。落とし穴がたくさんあります。
とはいえ、変数が同じ名前でもいいのであれば、ここに一つのテクニックがあります。
$ f () { local a; a=(abc 'def ghi' jkl); declare -p a; }
$ g () { local a; eval $(f); declare -p a; }
$ f; declare -p a; echo; g; declare -p a
declare -a a='([0]="abc" [1]="def ghi" [2]="jkl")'
-bash: declare: a: not found
declare -a a='([0]="abc" [1]="def ghi" [2]="jkl")'
-bash: declare: a: not found
は
declare -p
コマンド(ただし
f()
は、デモンストレーションのために配列の状態を表示するために使用されます。で
f()
では、配列を返す仕組みとして使われています。
配列に別の名前が必要な場合は、このようにします。
$ g () { local b r; r=$(f); r="declare -a b=${r#*=}"; eval "$r"; declare -p a; declare -p b; }
$ f; declare -p a; echo; g; declare -p a
declare -a a='([0]="abc" [1]="def ghi" [2]="jkl")'
-bash: declare: a: not found
-bash: declare: a: not found
declare -a b='([0]="abc" [1]="def ghi" [2]="jkl")'
-bash: declare: a: not found
関連
-
[解決済み] MASMアセンブリの配列 (非常に混乱している初級者)
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] 関数内でグローバル変数を使用する
-
[解決済み] オブジェクトが配列であるかどうかを確認するにはどうすればよいですか?[重複]。
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] 新しい配列を作成せずに、既存のJavaScript配列を別の配列で拡張する方法
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】IndexError: Index 10 is out of bounds for axis 0 with size 10
-
[解決済み] 配列から要素を1つだけ値で削除する方法
-
[解決済み] MATLABのnumel関数とlength関数の違いについて
-
[解決済み] Twigでの出力配列
-
[解決済み] Rubyでハッシュの配列をソートする方法
-
[解決済み] SwiftでUInt8バイト配列を文字列に変換する方法
-
[解決済み] Powershellで配列の値をソートする
-
[解決済み] Bashでインデックスを指定せずに配列に新しい要素を追加する
-
[解決済み] Angular 2とTypeScriptで2つのオブジェクト配列をマージする?
-
[解決済み] 数百万のピクセルを持つ2Dの非ボックス化ピクセル配列にはどのようなHaskell表現が推奨されますか?