かっちゅさんの回答を読んだ後この問題declare
組み込み(パラメータを含む)シェルの存在について学びました。-n
help declare
インポート:
変数の値と属性を設定します。
変数を宣言し、属性を割り当てます。名前を指定しないと、すべての変数の属性と値が表示されます。
-n...NAME を値の名前付き変数への参照にします。
変数が何であるか、拡張するのかわからないので、declare
例と一緒に一般的な説明を求めました。しかし、まだ(変数プロパティ?)を見逃しています。man
man
declare
答えのilkkachuのコードに基づいてこれを説明したいかもしれません。
#!/bin/bash
function read_and_verify {
read -p "Please enter value for '$1': " tmp1
read -p "Please repeat the value to verify: " tmp2
if [ "$tmp1" != "$tmp2" ]; then
echo "Values unmatched. Please try again."; return 2
else
declare -n ref="$1"
ref=$tmp1
fi
}
ベストアンサー1
ほとんどの場合、暗黙の宣言で十分です。bash
asdf="some text"
しかし、時には変数の値が整数になることを望むかもしれません。したがって、後で自動的に変更しても整数にのみ変更されることがあり、場合によってはデフォルト値は0になります。以下を使用できます。
declare -i num
または
declare -i num=15
時には配列が必要で、その後は必要です。declare
declare -a asdf # indexed type
または
declare -A asdf # associative type
bash
たとえば、検索文字列 "bash arraytutorial"(引用符を除く)を使用してインターネットを閲覧するときに配列の優れたチュートリアルを見つけることができます。
linuxconfig.org/how-to-use-arrays-in-bash-script
変数を宣言するときに最もよく発生するケースだと思います。
また参考にしてください
- 関数内の
declare
変数をローカルにします(関数内)。 名前がない場合は、すべての変数が一覧表示されます(アクティブシェルにあります)。
declare
declare
最後に、以下を使用して、bash
シェルの組み込みコマンド機能の簡単な要約を得ることができます。
help declare