Zshエイリアスは機能しませんが、ターミナルに貼り付けるとコマンドは機能します

Reinier Kaper

私の.zshrcファイルには、次のような「ハウスキーピング」というエイリアスがあります。

alias housekeeping="git fetch -p && git branch -vv | grep ': gone]' | awk '{print $1}' | xargs git branch -d"

このコマンドを実行すると、何らかの理由で次の出力が得られます。

error: The branch '12795-add-ship-info-to-FAQ' is not fully merged.
If you are sure you want to delete it, run 'git branch -D 12795-add-ship-info-to-FAQ'.
error: branch '97167bb3f' not found.
error: branch '[origin/12795-add-ship-info-to-FAQ:' not found.
error: branch 'gone]' not found.
error: branch 'Edits' not found.
error: branch 'to' not found.
error: branch 'text' not found.

間違った議論を伝えているようです。

ただし、まったく同じコマンドをターミナルから直接実行すると、目的の結果が得られます。

私は何が間違っているのですか?

チェプナー

問題は、エイリアスの二重引用符の中$1で、シェルの現在の最初の位置パラメータを参照していることです。おそらく設定されていないので、エイリアスはと同等です

alias housekeeping="... | awk '{print }' | xargs ..."

$1空の文字列展開されたその結果、grepブランチ名だけでなく、の出力全体がに供給されますxargs。これは改行だけでなく空白を2つの引数を区切るものとして扱います。

正しいスクリプトawk '{print \$1}'を確実にawk取得するためにドル記号(をエスケープするか、さらに良いことに、引用符の余分な層を避けるためにエイリアスの代わりに関数使用する必要あります。

housekeeping () {
  git fetch -p && git branch -vv | awk '/: gone]/ {print $1}' | xargs git branch -d
}

スクリプトgrep内の呼び出しをパターンに置き換えたことに注意してくださいawk

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

「echo」を介して取得した出力は、ターミナルに貼り付けるとコマンドとして機能しますが、スクリプトでは機能しません

分類Dev

コマンドはコピーして貼り付けると機能しますが、bashスクリプトでは機能しませんか?

分類Dev

私のコードはボタンに貼り付けたときに機能しますが、クラスからは機能しません

分類Dev

ターミナルで機能する同じコマンドは、Thunarカスタムアクションとしては機能しません

分類Dev

コマンドはターミナルでは機能しますが、Kotlinでは機能しません

分類Dev

コマンドはターミナルで機能しますが、QProcess経由では機能しません

分類Dev

コマンドはターミナルで機能しますが、Runtime.execでは機能しません

分類Dev

コマンドはcrontabで機能しませんが、ターミナルでは機能します

分類Dev

アラビア語(ペルシア語)フォントでは半空間が機能しませんが、検査では同じコードをコピーして貼り付けることで正常に機能します

分類Dev

JQueryはコンソールに貼り付けたときに機能しますが、ページの読み込み時には機能しません

分類Dev

sedコマンドはターミナルで機能しますが、bash_aliasesまたはbashスクリプトでは機能しません

分類Dev

sedコマンドはターミナルで機能しますが、bash_aliasesまたはbashスクリプトでは機能しません

分類Dev

このコマンドはターミナルでは機能しますが、シェルスクリプトでは機能しません

分類Dev

自己定義のbashコマンドはターミナルでは機能しますが、スクリプトでは機能しません

分類Dev

検索コマンドはターミナルでは機能しますが、bashスクリプトでは機能しません

分類Dev

シェルスクリプト:コマンドは「foundne」ではありませんが、ターミナルではうまく機能します

分類Dev

Gitコマンドはターミナルで機能しますが、Groovyスクリプトからは機能しません

分類Dev

Ubuntu-「sudoiptables」コマンドはターミナルで機能しますが、bashスクリプトでは機能しません

分類Dev

コマンドはサブプロセスまたはos.popenでは機能しませんが、ターミナルでは機能します

分類Dev

Linuxの表示コマンドはターミナルでは機能しますが、systemdサービスでは機能しません

分類Dev

コマンド「adb」はmacOSシェルスクリプトでは期待どおりに機能しませんが、macOSターミナルでは正常に機能します

分類Dev

AmCharts dataLoaderはデータをロードしませんが、dataProviderにデータを貼り付けて使用すると正常に機能します

分類Dev

std :: process :: CommandはmacOSでhdiutilを実行できません(マウントに失敗しました-そのようなファイルやディレクトリはありません)が、ターミナルで実行するとコマンドは正常に機能します

分類Dev

Scrotプログラムのエイリアスは.bashrcでは機能しませんが、ターミナルでは機能します

分類Dev

数式から実行するマクロはコピー/貼り付けされませんが、vbeを実行すると正常に機能します

分類Dev

ターミナルコマンドはPhpStormでは機能しません

分類Dev

クエリはmysqlターミナルでは機能しますが、phpでは機能しません

分類Dev

Bashスクリプトはターミナルエミュレータで機能しますが、i3キーバインドとしては機能しません

分類Dev

「g ++」はコマンドプロンプトでは機能しますが、VSCodeターミナルでは機能しません

Related 関連記事

  1. 1

    「echo」を介して取得した出力は、ターミナルに貼り付けるとコマンドとして機能しますが、スクリプトでは機能しません

  2. 2

    コマンドはコピーして貼り付けると機能しますが、bashスクリプトでは機能しませんか?

  3. 3

    私のコードはボタンに貼り付けたときに機能しますが、クラスからは機能しません

  4. 4

    ターミナルで機能する同じコマンドは、Thunarカスタムアクションとしては機能しません

  5. 5

    コマンドはターミナルでは機能しますが、Kotlinでは機能しません

  6. 6

    コマンドはターミナルで機能しますが、QProcess経由では機能しません

  7. 7

    コマンドはターミナルで機能しますが、Runtime.execでは機能しません

  8. 8

    コマンドはcrontabで機能しませんが、ターミナルでは機能します

  9. 9

    アラビア語(ペルシア語)フォントでは半空間が機能しませんが、検査では同じコードをコピーして貼り付けることで正常に機能します

  10. 10

    JQueryはコンソールに貼り付けたときに機能しますが、ページの読み込み時には機能しません

  11. 11

    sedコマンドはターミナルで機能しますが、bash_aliasesまたはbashスクリプトでは機能しません

  12. 12

    sedコマンドはターミナルで機能しますが、bash_aliasesまたはbashスクリプトでは機能しません

  13. 13

    このコマンドはターミナルでは機能しますが、シェルスクリプトでは機能しません

  14. 14

    自己定義のbashコマンドはターミナルでは機能しますが、スクリプトでは機能しません

  15. 15

    検索コマンドはターミナルでは機能しますが、bashスクリプトでは機能しません

  16. 16

    シェルスクリプト:コマンドは「foundne」ではありませんが、ターミナルではうまく機能します

  17. 17

    Gitコマンドはターミナルで機能しますが、Groovyスクリプトからは機能しません

  18. 18

    Ubuntu-「sudoiptables」コマンドはターミナルで機能しますが、bashスクリプトでは機能しません

  19. 19

    コマンドはサブプロセスまたはos.popenでは機能しませんが、ターミナルでは機能します

  20. 20

    Linuxの表示コマンドはターミナルでは機能しますが、systemdサービスでは機能しません

  21. 21

    コマンド「adb」はmacOSシェルスクリプトでは期待どおりに機能しませんが、macOSターミナルでは正常に機能します

  22. 22

    AmCharts dataLoaderはデータをロードしませんが、dataProviderにデータを貼り付けて使用すると正常に機能します

  23. 23

    std :: process :: CommandはmacOSでhdiutilを実行できません(マウントに失敗しました-そのようなファイルやディレクトリはありません)が、ターミナルで実行するとコマンドは正常に機能します

  24. 24

    Scrotプログラムのエイリアスは.bashrcでは機能しませんが、ターミナルでは機能します

  25. 25

    数式から実行するマクロはコピー/貼り付けされませんが、vbeを実行すると正常に機能します

  26. 26

    ターミナルコマンドはPhpStormでは機能しません

  27. 27

    クエリはmysqlターミナルでは機能しますが、phpでは機能しません

  28. 28

    Bashスクリプトはターミナルエミュレータで機能しますが、i3キーバインドとしては機能しません

  29. 29

    「g ++」はコマンドプロンプトでは機能しますが、VSCodeターミナルでは機能しません

ホットタグ

アーカイブ