これらの文字を単に文字列として使用したいときは\を前に置いてエスケープして使いましょう。 test.sh #!/bin/bashvar=valueecho$varecho\$var# $ をエスケープすることでパラメータ展開させないecho\$var$var# 並べて出力echo\\# \ 自身も \ でエスケープできるvar=hoge\fuga# スペー...
はじめにシェルスクリプトで文字列を分割する時に気軽に IFS を使っている例をよく見かけるのですが文字列の分割として考えると直感的な動作とは言えないので注意が必要です。これは単語分割が他の言語でよ…
これは表示不可能な文字を C 言語風の \ を使ったエスケープを行いますが各実装で細かい違いあります。重大な問題点として Solaris 11 では \ を\\ にエスケープしないので例えば \010 が改行なのか \ 0 1 0 という文字列なのか区別が付きません。移植性はそれなりに高いものの、どの...
歴史的に echo コマンドはオプション (-n や-e など)や引数(文字列)にバックスラッシュが含まれる時の解釈がシェルによって異なり、POSIX シェルの標準規格でも、動作が異なる(異なっていても良い)ことが明記されており、いずれの動作でも POSIX 準拠の要件を満たします。
はじめに一部の POSIX シェルには、シェル自体に正規表現対応の機能が含まれており、外部コマンドに依存せずに正規表現による比較を行えます。すべての POSIX シェルで使えるわけではありませんが…