これら2つのコマンドの違いが何であるかを知りたいです。
echo ` echo `date` `
echo ` echo \`date\` `
\が文字をエスケープするために使用されることを知っていますが、この特定の文脈では理解できません。私達はなぜ使用しないか。
echo \` echo \`date\` \`
代わりに `文字をエスケープする必要がある場合はどうなりますか?
答え1
$(cmd)
入れ子にできる他のバックティック式を使用できます。一方、バックティック内部パラメータを変数として生成して内部で使用できます。
echo $(echo `date`)
echo $(echo $(date))
x=`date` echo `echo $x`
引用符をエスケープしないで \` を使うと
echo $(echo )date$( )
シェルは引数を解析して式の引数を評価しようとします。つまり:
echo \` echo \`date\` \`
argv[0]="echo", argv[1]="`", argv[2]="echo", argv[3]="`date`", argv[4]="`"
私はあなたが理解できるように別の例を残します。