シェルで特殊文字を囲むために一重引用符を使用するときは、「一重引用符」をどのようにエコーしますか?

シェルで特殊文字を囲むために一重引用符を使用するときは、「一重引用符」をどのようにエコーしますか?

今日はシェルチュートリアルを読んでいます。http://www.tutorialspoint.com/unix/unix-quoting-mechanisms.htm

それは述べた:

出力したい文字列に一重引用符が表示されている場合は、文字列全体を一重引用符で囲まないでください。

echo 'It\'s Shell Programming'

Centosサーバーでこれを試しましたが、うまくいかなかったので、>より多くの入力を要求しました。

\2つの一重引用符はすべての特殊文字をエスケープ文字を含みますが、自分を除外する一般文字に変換するため、一重引用符構文'内で
一重引用符をどのように表現するのか疑問に思います。'

ベストアンサー1

チュートリアルが間違っています。

POSIX説明する:

一重引用符の中に一重引用符を含めることはできません。

以下はいくつかの選択肢です。

echo $'It\'s Shell Programming'  # ksh, bash, and zsh only, does not expand variables
echo "It's Shell Programming"   # all shells, expands variables
echo 'It'\''s Shell Programming' # all shells, single quote is outside the quotes
echo 'It'"'"'s Shell Programming' # all shells, single quote is inside double quotes

追加資料:はじめに - Greg Wikipedia

おすすめ記事