場合によっては、bash(または他のシェル)スクリプト内のスペースの数が重要です。

場合によっては、bash(または他のシェル)スクリプト内のスペースの数が重要です。

bash私は他のシェルスクリプトではスペースが重要であり、私が何をしているのかわからない限り、スペースの存在を変更してはいけないと言われました。 「変更var="$val"が存在します」とは、空白ではない2つの文字の間にスペースを挿入すること、または空白ではない2つの文字間でスペースを削除することを意味しますvar ="$val"。聞きたい

シェルスクリプトで単一のスペースまたは複数の連続するスペースを使用すると違いはありますか?

(もちろん、引用符の中にスペースを挿入/削除すると、違いが生じる可能性があります。たとえば、からにまたはecho "a b"そのecho "a b"逆に変更することです。この単純な例ではなく他の例を探しています。)

私が出会ったこの問題ただし、これはスペースではなく2つの文字の間にスペースを追加および削除することに関するものであり、これが影響を与える可能性がある多くの例を知っています。

どんな助けでも大変感謝します。可能であれば、より多様な殻を含めてください。

ベストアンサー1

これは不正行為かもしれませんが、

rm foo\ bar         # "delete the file named 'foo bar'"

これとは異なり、

rm foo\  bar        # "delete the files named 'foo ' and 'bar'"

スペースがあってもいいえ引用符で囲みました。 ;-)

より混乱した点は次のとおりです。

rm \
    foo          # "delete the file named 'foo'"

これとは異なり、

rm \ 
    foo          # "delete the file named ' ', then run the command 'foo'"

彼らはバラより同じです!

おすすめ記事