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'"
彼らはバラより同じです!