2017-12-05 4 views
1

ねえ誰も私が私がaliasコマンド構文エラーエイリアス定義にパイプ複数のコマンドにしようとしたとき

を使用して任意の制限を認識していないですので、bashに.Iは新しいです aliasの作成時に、構文エラーを解決するために助けることができます

私はこのaliasコマンドを実行するたび

alias user='responseVar=$(curl -XGET link) && echo ${responseVar} | jq '.offsets[] | " \(.topic) \(.offset) \(.logSize) "' | awk 'NR>1{arr[$2]=arr[$2]+($4-$3)} END{for (a in arr) print a"="arr[a]}'' 

私はこのエラーを取得します。

bash: syntax error near unexpected token `(' 
+2

単純なエイリアスコマンドはどの惑星ですか? – 123

+0

このコードは 'awk'を必要としていますか? (すべてのロジックを 'jq'に移動できない場合、私はむしろ驚くだろう)。 –

答えて

1

避けスタートアップコンフィギュレーションファイルのいずれかで(彼らは唯一のインタラクティブシェルでは許可されている)aliasを使用して

doSomething() { 
    curl -XGET link | jq '.offsets[] | " \(.topic) \(.offset) \(.logSize) "' | 
     awk 'NR>1{arr[$2]=arr[$2]+($4-$3)} END{for (a in arr) print a"="arr[a]}' 
} 

を行う代わりに、簡単な関数を定義し、定義された(例えば、例えば.bashrc)起動して新しいシェルを起動して実行するだけです。

doSomething 
+1

このような単純なソリューションをありがとう!!!! –

関連する問題