エイリアスを使用せずに同じことを達成するものを次に示します。 .bashrc の関数に入れます:
xx() {
svn status | awk '$1 =="M"{print $2;}'
}
このようにして、引用符を正しく取得することを心配する必要はありません。これは、コマンド ラインで使用するのとまったく同じ構文を使用します。
正しくエスケープする必要があります。
alias xxx="svn status | awk '\$1 ==\"M\"{print \$2;}'"
Bash 2.04 以降、関数を使用するか、@ffledgling が行った方法でエスケープする以外に、3 つ目の (より簡単な) 方法があります:文字列リテラル構文を使用します (ここに優れた回答があります)。
たとえば、この onliner のエイリアスを作成したい場合、最終的には次のようになります:
alias snap-removedisabled=$'snap list --all | awk \'$5~"disabled"{print $1" --revision "$3}\' | xargs -rn3 snap remove'
$
を追加するだけです。 文字列の前に置き、一重引用符をエスケープします。
これにより、おそらく # shellcheck disable=SC2139
で安全に無効にできるシェルチェック警告が表示されます .