最初は、これは奇妙なワンタイム欠陥だと思いましたが、今では同じ動作を持つ2つ目のbash機能をまったく別に見つけて狂気にするので、助けを求めます。
コンテキスト:私はZSHをシェルとして使用してMacで作業しています。頻繁に実行するタスクを自動化するシェル関数の形式のヘルパースクリプトがあります。ほとんどはパラメータ渡しが必要です。このパラメータは2桁の国コード(AU、CA、UK、DEなど)です。ほとんどはうまくいきますが、CA
引数として渡されると両方の関数が失敗します。
間違い:
cat: illegal option -- A
usage: cat [-belnstuv] [file ...]
テスト中の説明は両方の機能に適用されます。
- 確認されたディレクトリが存在します。
- 他のすべての国コードは有効です(アメリカ、イギリス、オーストラリア、ドイツ、日本)。
- 小文字は
ca
有効です。 - workで終わるその他のランダムな
A
2文字の文字列。 - workで始まるその他のランダムな2文字の文字列
C
。 - のようにjustを使用すること
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"
すべての入力CA
がcat -A
。それが私の問題を引き起こす原因です。この行を削除すると、上記のシェル関数が期待どおりに実行される可能性があります。