以下を読み取り専用として定義しました。
readonly root_command='sudo -s'
後で私のスクリプトで次のように使用されました。
exec $root_command
私の質問は、おそらく私がそうかもしれないということです。遅いそれとも何かが、私は完全に理解できません。POSIX のマニュアルページ、たとえば、一重引用符を使用できますか?それとも二重引用符を使用する必要がありますか?-p
そのようなオプションの目的は何ですか?
ありがとうございます。
答え1
POSIXによるとにはreadonly
2つの形式があります。
readonly var
、これはシェル変数をvar
読み取り専用としてマークし、同時にオプションでvar
()に値を割り当てます。readonly var=value
readonly -p
、すべての読み取り専用変数の名前と値を印刷します。
これらは結合されません。現在の読み取り専用変数をすべて表示するために使用でき、変数を読み取り専用として表示するために-p
使用することもできます()。readonly
-p
変数を読み取り専用としてマークすると、値を指定することもできます(後で変更できないため、この値は永続的な値になります)。これは任意の変数の割り当てと同じであり、単語があるvar=value
場所で型をとるので、通常value
と同じ規則(変数の拡張を防ぐために一重引用符、変数の拡張を許可するには二重引用符など)を使用して適切に引用する必要があります。必要です。 )。
これはのexec $root_command
現在の値によって異なります。$IFS
コマンドを保存するには、変数ではなく関数を使用することをお勧めします。