GNU/Linux >> Linux の 問題 >  >> Linux

一重引用符と二重引用符の両方を含む bash エイリアス コマンド

エイリアスを使用せずに同じことを達成するものを次に示します。 .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 で安全に無効にできるシェルチェック警告が表示されます .


Linux
  1. 別のコマンドの単一引用符と二重引用符を含むコマンドをラップしますか?

  2. Bash の「test」コマンドでの「&&」と「&」の比較

  3. bash:特殊文字を含むコマンドライン引数を渡す方法

  1. sourceコマンドを使用して関数と変数をBashにインポートします

  2. 1 つのコマンドで .tar.gz ファイルを開く

  3. 一重引用符で展開される bash 変数の問題

  1. bash / 標準の Linux コマンドのみを使用して、文字列内の一重引用符と二重引用符を削除する

  2. bash の変数を持つエイリアス

  3. bash 引数で引用符を保持する