Ну, начать с командной строки вы предоставляете тарабарщина:
$ alias do "grep -iE '' | awk '{if($2 < 0)print}'"
bash: alias: do: not found
bash: alias: grep -iE '' | awk '{if(< 0)print}': not found
Если я исправить то, что я думаю, что вы имеете в виду, я вижу это:
$ alias do="grep -iE '' | awk '{if($2 < 0)print}'"
$ alias do
alias do='grep -iE '\'''\'' | awk '\''{if(< 0)print}'\'''
И с этим мы может понять, почему вы получаете ошибку синтаксического анализа. $ 2 съедается оболочкой до того, как awk
когда-либо ее видит. Попробуйте это вместо этого:
$ alias do="grep -iE '' | awk '{if(\$2 < 0)print}'"
$ alias do
alias do='grep -iE '\'''\'' | awk '\''{if($2 < 0)print}'\'''
Я полагаю, что на этом этапе вы больше не будете получать ошибки анализа. (Я не могу говорить на все это, естественно, так как я не знаю, что вы используете в качестве входных данных.)
Это сработало .... Большое спасибо .. – zobars
@zobars: Обычно считается вежливым, чтобы «принять» ответ, который сработал лучше всего для вас. И проголосовать за него. –
@JUST, я все с вами .., я новичок здесь, поэтому мне потребовалось некоторое время, чтобы понять, как принять ответ, и я попробовал, но у меня нет достаточной репутации для продолжения. – zobars