Pythonを使用すると、
$ python3 -c 'print("\\\n")'
\
$
つまり、1つのバックスラッシュと1つの改行に続いて、インタープリターによって追加の改行が挿入されます。
Cを使用してコードをコンパイルする
#include <stdio.h>
int main(void)
{
printf("\\\n");
return 0;
}
ファイルにbackslash.out
が生成されます
$ ./backslash.out
\
$
つまり、1つのバックスラッシュと1つの改行です。
バッシュでは、私は得る
$ STRING="\\\n"
$ printf "${STRING}"
\n$
ここでbash printfコマンドは正確に何をしますか?エスケープ文字\
に関して、python print
またはC printf
コマンドとはどう違うのですか?そして、私の端末で次の出力を得るために変数STRING
に何を入れる必要がありますか:
$ printf "${STRING}"
\
$
以下のスニペットでは、バックスラッシュエスケープの前後に「二重引用符」を使用しています。
$ STRING="\\\n"
$ printf "${STRING}"
\n$
ただし、Bashは依然として二重引用符内の一部のバックスラッシュエスケープを評価するため、\\n
は"\\"
と評価されるため、その後の変数の内容は実際には\
になります。
シェルがバックスラッシュに触れないように、文字列を「単一引用符」で囲みます。
$ STRING='\\\n'
$ printf "$STRING"
\
$