sudoは、すべてのUNIXシリーズシステムでバックスラッシュの後ろの文字を処理しますか? - 長い行を壊すために使用されます。

sudoは、すべてのUNIXシリーズシステムでバックスラッシュの後ろの文字を処理しますか? - 長い行を壊すために使用されます。

通常、長いコマンド/行の末尾に「\」を入れて複数行に分割できます。

sudoers構文ではこれも許可します。大丈夫です。

しかし:

「\」文字の後に「スペース」がある場合、コマンド/スクリプトは中断されます。しかし、sudoはそうではありません。

質問:sudoがすべてのUNIX系システムで「\」の後に空白を許可することが正式に(そしてどこに文書化されています)ありますか?

コマンド例:

一般的なバックスラッシュ:

$ echo a; \
> echo b
a
b

バックスラッシュの後にスペースが追加されます。

$ echo a; \ 
a
bash:  : command not found
$ 

ベストアンサー1

\動作はさまざまなアプリケーションで処理されるため、コンテキストによって異なります。

sudoersファイルは.sosudoからインポートされたものであるため、sudo実装によって異なりますsudo可能システムによって異なります。たとえば、OSXでは次のようになりますman sudoers

長い行は、最後の行にバックスラッシュ('\')を使用して続行できます。 特徴オンライン。

説明するその他の動作は、以下bashで処理され記録されますman bash

\<newline>ペアが発生してバックスラッシュ自体が引用符で囲まれていない場合は、行の連続として\<newline> 処理されます(つまり、入力ストリームから削除され、事実上無視されます)。

他のシェルは異なる実装を持つことができます。

おすすめ記事