時に来るシェル操作、最初のステップは理解できますが、2番目のステップは少し混乱しています。これが私の理解です:
まず、シェルは入力を単語と演算子に分割し、引用規則に従って実行します。私が持っているいくつかの質問は次のとおりです。私が実行したとき:
$ \n
bash: n: command not found
なぜn: command not found
?いいえ\n: command not found
?
$ $'\n'
bash: $'\n': command not found
ANSI-Cの引用を実施しないのはなぜですか?
しかし、入力がスクリプトファイルの場合、単語と演算子にどのように分割されますか?一行ずつまたは全体的に?
ベストアンサー1
バックスラッシュは次の文字を引用します(引用符を参照man bash
)。\n
したがって、は次のように解釈されますn
(コマンドの最初の単語として、これはエイリアスの拡張を防ぎます。ALIASESを参照man bash
)。
$'\n'
はいANSI-C引用符として解釈されます。 Bashは同じ引用符を使用して問題のある文字を表示します。同じエラーが発生する可能性があります
'
'
これはそれと同じです。
単語分割プロセスは最初に説明されていますman bash
。ご不明な点は、より具体的にご質問いただくか、確認してみてください。ソースコード。