zshエイリアスで二重引用符と一重引用符をエスケープします。

zshエイリアスで二重引用符と一重引用符をエスケープします。

この答えの結果を複製しようとしています。ワイヤーただし、別のコマンドを使用します。

回答をコピーしようとしましたが、端末をロードしてもzshでエラーが発生し続けます。

/Users/k/.zshrc:155: defining function based on alias `convert'
/Users/k/.zshrc:155: parse error near `()'

エイリアスを作成するコマンドは次のとおりです。

awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' SOME_FILE_NAME.pem

エイリアスを指定したい。

convert SOME_FILE_NAME.pem

これが私がzshrcで試したことです。

conv() {
    awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' "$@"
}

答え1

これにエイリアスを作成するには、次の手順を実行する必要があります。

alias conv='awk '\''NF {sub(/\r/, ""); printf "%s\\n",$0;}'\'

関数の作成:

conv() awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' "$@"

ただし、関数定義コマンドをalias実行する前にすでに定義している場合は、エイリアス定義に展開され、次のような解釈を試みます。convconvzsh

awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}'() awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' "$@"

あなたが見ているエラーの原因。

選択する必要があります:エイリアスまたは関数を使用しますが、両方を使用しないでください。

エイリアスを削除するには(関数を定義できるように):

unalias conv

関連情報