シェルスクリプト:「CA」をシェル関数に引数として渡すと、「cat:違法オプション--A」エラーが発生し、他の2文字引数は期待どおりに機能します。

シェルスクリプト:「CA」をシェル関数に引数として渡すと、「cat:違法オプション--A」エラーが発生し、他の2文字引数は期待どおりに機能します。

最初は、これは奇妙なワンタイム欠陥だと思いましたが、今では同じ動作を持つ2つ目のbash機能をまったく別に見つけて狂気にするので、助けを求めます。

コンテキスト:私はZSHをシェルとして使用してMacで作業しています。頻繁に実行するタスクを自動化するシェル関数の形式のヘルパースクリプトがあります。ほとんどはパラメータ渡しが必要です。このパラメータは2桁の国コード(AU、CA、UK、DEなど)です。ほとんどはうまくいきますが、CA引数として渡されると両方の関数が失敗します。

間違い:

cat: illegal option -- A
usage: cat [-belnstuv] [file ...]

テスト中の説明は両方の機能に適用されます。

  • 確認されたディレクトリが存在します。
  • 他のすべての国コードは有効です(アメリカ、イギリス、オーストラリア、ドイツ、日本)。
  • 小文字はca有効です。
  • workで終わるその他のランダムなA2文字の文字列。
  • workで始まるその他のランダムな2文字の文字列C
  • のようにju​​stを使用することAもできますtaillog A

関数1が失敗した場合は、次のように実行します。taillog CA

function taillog() {
    local grey="1;30"
    local red="1;31"
    local green="1;32"
    local yellow="1;33"
    local cyan="1;36"
    tail -f /Users/myUser/Sites/Country-"$1"/logs/error.log \
    | GREP_COLOR="$green" grep -E --color=always --line-buffered "(\[php7?:info\])|$" \
    | GREP_COLOR="$cyan" grep -E --color=always --line-buffered "(\[php7?:notice\])|$" \
    | GREP_COLOR="$yellow" grep -E --color=always --line-buffered "(\[php7?:warn\])|(?i:warn(ing))|$" \
    | GREP_COLOR="$red" grep -E --color=always --line-buffered "(\[php7?:error\])|(?i:error(s))|(?i:fatal)|$" \
    | GREP_COLOR="$grey" grep -E --color=always --line-buffered "(?i:debug)|$"
}

関数2が失敗しました。実行してください。findChanged CA 600

function findChanged() {
    find /Users/myUser/Sites/Country-"$1"/public/wp-content/plugins -type f -cmin -"$2" -not -path "*/\.git/*" | more
}

他のすべての国コードは期待どおりに機能します。苦情のCA原因は正確に何ですか?catこれは私を狂わせる。

ベストアンサー1

私のZSHプラグインの1つである「common-aliases」がグローバルエイリアスを注入し、alias -g CA="2>&1 | cat -A"すべての入力CAcat -A。それが私の問題を引き起こす原因です。この行を削除すると、上記のシェル関数が期待どおりに実行される可能性があります。

おすすめ記事