indirection

修正する
indirection

修正する

この質問にはすでに答えがあります。: ...

Admin

文字列置換でbash間接参照を使用する必要がないのはなぜですか?
indirection

文字列置換でbash間接参照を使用する必要がないのはなぜですか?

Bashスクリプトで私が経験した難しいことの1つは、変数拡張を再帰的に使用することです。 しかし、私は[ChatGPTを介して]位置パラメータ値を参照するために間接置換を使用できることを発見しました。 linkerArgs+=("${!i}") ただし、文字列置換を使用すると、論理的に拡張を再帰的に使用できます。 "${x// /$newChar}" bashインタプリタが配列に項目を割り当てるコンテキストで使用されている場合、後者の型の拡張(括弧内のドル記号のみ)を「無効な置換」として扱いますが、文字列置換では使用時に処理しないのはなぜですか? ...

Admin

変数の呼び出しに引用符で囲まれたコマンド置換は使用できません。
indirection

変数の呼び出しに引用符で囲まれたコマンド置換は使用できません。

説明する: variable="Something that it holds" それから echo "$variable"出力されます: それが含んでいる内容 しかし、私もそうだとしましょう。 var2="variable"; echo "\$$(echo $var2)" $variable 代わりに:何が含まれているのかを出力します。 ここでUnixのどの機能が機能しているかを教えてくれる人はいますか? ...

Admin

Bash配列の間接アクセス
indirection

Bash配列の間接アクセス

次の間接的な操作を実行しようとしています。 host_1=(192.168.0.100 user1 pass1) host_2=(192.168.0.101 user2 pass2) hostlist=( "host_1" "host_2" ) for item in ${hostlist[@]}; do current_host_ip=${!item[0]} current_host_user=${!item[1]} current_host_pass=${!item[2]} echo "IP: $current_host_ip User: $cu...

Admin

zsh は間接拡張によって連想配列のキーが存在するかどうかをテストします。
indirection

zsh は間接拡張によって連想配列のキーが存在するかどうかをテストします。

したがって、次のように間接拡張によって一般パラメータの有無をテストできることがわかります。 foo=1 bar=foo (( ${(P)+bar} )) && print "$bar exists" 以下を実行して、連想配列にキーが存在するかどうかをテストできることを知っています。 foo=([abc]=1) (( ${+foo[abc]} )) && print "abc exists" しかし、2つを組み合わせて、間接拡張によってキーが連想配列に存在するかどうかをテストする方法はわかりません。 evalを使用し...

Admin

Bashにはいくつかのレベルの間接参照を適用できますか?
indirection

Bashにはいくつかのレベルの間接参照を適用できますか?

Bashでは、2つの方法で可変間接拡張を実行できることを知っています。 使用declare:declare -n foo=bar 拡張機能を使用してください${!..}。 私たちは2つを組み合わせることができます: declare -n foo=SHELL bar=foo echo ${!bar} 以下を提供します。 /bin/bash より多くのレベルに拡張できますか? ほとんどは難読化されたコードを書くことです。私の友人の中には、これをやろうとすることに挑戦しています。 ...

Admin

Bash変数間接参照を使用するときに、より多くの配列メンバーにアクセスする方法は?
indirection

Bash変数間接参照を使用するときに、より多くの配列メンバーにアクセスする方法は?

インデックスとうまく機能するように見える次の例を見てください0。 $ a1=(1 2 3) $ a2=(a b c) $ for x in a1 a2; do echo "${!x}"; done 1 a $ for x in a1 a2; do echo "${!x[0]}"; done 1 a ただし、索引付けを使用すると、1何も印刷されません。 $ for x in a1 a2; do echo "${!x[1]}"; done 配列はそれ自体で大丈夫です。 $ echo "${a1[1]} ${a2[1]}" 2 b 編集 ...

Admin