二重引用符と一重引用符の両方が失敗した場合のエイリアスの設定

二重引用符と一重引用符の両方が失敗した場合のエイリアスの設定

この質問は重複しません。エイリアスがbashコマンドを直接実行するのとは異なる動作をするのはなぜですか?なぜなら、私はすでに成功していないままその解決策を試したからです。すべての一重引用符を二重引用符に変更し、その逆も同様でした。このコマンドはどちらも実行しません。

sysシステムの変更を追跡し、sys.md日付を追加し、行をインポートして貼り付け、-マークダウンh2形式に置き換え、新しい行を開き、1つを-マークダウンとして挿入するファイルを開くエイリアスを実装しようとしています。弾丸の形式。 vi.stackexchange.comでこのコマンドを実装するのに役立ちました。効果があります:

nvim +'$pu_|r!date' +'norm yypVr-o ' ~/notes/sys.md

一重引用符を二重引用符に置き換えると、$ pu_が評価され、次の結果が得られます。

zsh: event not found: date

だから一重引用符が重要です。ただし、エイリアスを実装する場合

alias sys="nvim +'$pu_|r!date' +'norm yypVr-o- ' ~/notes/sys.md"

エイリアスが失敗しました。nvim開かれますが、日付が一番下ではなく2行目に追加されます。明らかに$pu_はBASHで変数として評価されています。 (nvim構文チェッカーはそれが評価されていることを示しています。)二重と単一を反転して生成

alias sys='nvim +"$pu_|r!date" +"norm yypVr-o- " ~/notes/sys.md'

同じ行動をします。バックティック、

alias sys=`nvim +"$pu_|r!date" +"norm yypVr-o- " ~/notes/sys.md`

bashを固定してくださいsource .zshrc。どのように進むべきかわかりません。どんな助けでも大変感謝します。

ベストアンサー1

bash関数に入れるだけです(に関数を追加できます.bashrc)。

sys() {
    nvim +'$pu_|r!date' +'norm yypVr-o ' ~/notes/sys.md
}

その後、エイリアスのように呼び出すことができます。

おすすめ記事