$ declare -p ar
declare -a ar='()'
$ declare -p mmm
declare -- mmm="hello"
ここでは何を意味しますか--
?その属性のいくつかを説明していますかmmm
?
ありがとうございます。
答え1
これは出力形式の一貫性のためだけです。最初のフィールドはtext declare
、3番目のフィールドはですvar=value
。
したがって、特定の属性を持たない変数の場合、コマンドには「属性なし」を表示する方法が必要です。--
例えば
bash-4.2$ declare y=100
bash-4.2$ declare -p y
declare -- y="100"
bash-4.2$ declare -l y
bash-4.2$ declare -p y
declare -l y="100"
bash-4.2$ declare +l y
bash-4.2$ declare -p y
declare -- y="100"
結果はファイルに保存して後で検索できます。
答え2
答え3
--
オプションの終わりを表示します。ここでは重複します(変数名は次から始まりません(-
ユーザーのロケールが定義されている病理学的場合を除く)。-
α文字クラス)ととにかくフラグがある場合は追加されませんが、無害です。コードに次のものがあるのでそこにあるようです。
printf ("declare -%s ", i ? flags : "-");
次のコマンドより速い入力速度は何ですか?
if (i)
printf ("declare -%s ", i ? flags : "-");
else
printf ("declare ");
皮肉なことに、bash-2.01
コードは次のように変更されます。
if (pattr == 0 || posixly_correct == 0)
printf ("declare -%s ", i ? flags : "-");
else if (i)
printf ("%s -%s ", this_command_name, flags);
else
printf ("%s ", this_command_name);
を避けるときとexport
一緒に再使用されますが、そうではありません。readonly
--
export var=value
declare -- var=value