
エイリアスを設定できません。hexdump -e '/1 "%_ax) "' -e '/1 "%02X" "\n"'
私は以下を試しましたが、失敗:
alias analyze=\'hexdump -e '/1 "%_ax) "' -e '/1 "%02X" "\n"'\'
(最初と最後の一重引用符に注意してください。両方ともエスケープしました)
alias analyze='hexdump -e \'/1 "%_ax) "\' -e \'/1 "%02X" "\n"\''
(この場合、コマンド間に4つの単一引用符をエスケープしました。)
alias analyze=hexdump -e '/1 "%_ax) "' -e '/1 "%02X" "\n"'
(コマンドを引用符で囲まないでください)
hexdump -e '/1 "%_ax) "' -e '/1 "%02X" "\n"'
Bashでエイリアスを設定する方法は?
答え1
経験上、ある種類の引用をエスケープしても機能しない場合は、別の引用をエスケープしてください。
alias analyze="hexdump -e '/1 \"%_ax) \"' -e '/1 \"%02X\" \"\n\"'"
ここでは、内部二重引用符をエスケープし、すべてを二重引用符で囲みました。
完全なルールは、二重引用符の中に二重引用符をエスケープできますが、一重引用符の中に一重引用符をエスケープできないようです。外部エントリをエスケープする必要がありますが、エイリアスを定義するときは機能しません。
$ alias hi='echo hi' #works
$ alias hi='echo "hi"' #works
$ alias hi='echo \"hi\"' #works
$ alias hi="echo \'hi\'" #works
$ alias hi="echo \"hi\"" #works
$ alias hi='echo \'hi\'' #doesn't work
$ alias hi=\'echo 'hi'\' #should work but doesn't
エイリアスが正しく定義されたら、alias
すべてのエイリアスを一覧表示するコマンドを使用して、正しい答えが何であるかをbashに尋ねることができます。正しい参照が見つからない場合は、チートを使用して@meuhのメソッドを使用できます。この場合:
$ alias
alias analyze='hexdump -e '\''/1 "%_ax) "'\'' -e '\''/1 "%02X" "\n"'\'''
答え2
bashにエスケープ引用符を実行させることもできます。
read -r <<\!
hexdump -e '/1 "%_ax) "' -e '/1 "%02X" "\n"'
!
alias analyze="$REPLY"