回答:
単一引用符では、エスケープすることはできません。単一引用符を単一引用符に含める方法はありません。man bashでの引用を参照してください。
echo '\''
                    echo $'\'hello world\''
                    エスケープされたアポストロフィで何が起こっているかを説明するために、2番目の例を調べます(一重引用符、または強力な引用符も参照してください)。
$ echo '\'Hello World\''
>     # expects you to continue inputここで、あなたが述べたように、引用をぶら下げたままにしました。次に、端を切り取り、次のように変更します。
                     v                                v           v
$ echo '\'Hello World     # Echo two strings: '\' and 'Hello World'.
\Hello World         ^「Hello World」の部分文字列はここでは引用されていませんが、強い引用符で囲まれているように動作しました。もう一度例を使用して、今回は別の方法でエンドをトリムします。
                     vv                                    v (plain apostrophe)
$ echo '\'Hello World\'   # Will echo: '\' and 'Hello World''
\Hello World'        ^^   # Note that the trailing ' char is backslash escaped. 「Hello World」の部分文字列は、最後に追加されたアポストロフィ(エスケープされたため、単一引用符ではない)のみを使用して、強い引用符で囲まれているように動作します。
別の単一引用符が最後に追加されると(元の例)、文字列はぶら下げられたままになり、閉じ引用符を待機します。
シェルで引用符をエスケープする簡単な例:
$ echo 'abc'\''abc'
abc'abc
$ echo "abc"\""abc"
abc"abc既に開いているもの(')を閉じ、エスケープしたもの(\')を配置して印刷し、もう1つ(')を開きます。
代わりに:
$ echo 'abc'"'"'abc'
abc'abc
$ echo "abc"'"'"abc"
abc"abc既に開いているもの(')を終了し、別の引用符("'")に引用符を配置してから、別の引用符()を開き'ます。
あなたがしたこと('\'Hello World\'')は:
'。\'られるため、文字列は次のようになります'\'。Hello World 引用符ではありません。\')を開かずに配置しました。')は開始文字列ですが、予想される終了文字はありません。したがって、正しい例は次のとおりです。
$ echo \'Hello World\'
'Hello World'
echo \''Hello World'\'