Команда awk return не найдена на рабочем столе Ubuntu, но хорошо работает на Centos

Команда awk return не найдена на рабочем столе Ubuntu, но хорошо работает на Centos

Я создаю test.sh для чтения файла с содержимым

item1:return1
item2:return2
...
item10:return10

содержимое test.sh

VAR1=$1
VAR2= `grep "^${VAR1}:" /home/path/file | awk '{print $2;}'`

echo "${VAR2}";

запустить тест

sh test.sh item1

возвращаться

: not found test.sh: 
: not found test.sh: 

Когда я запускаю то же самое на Centos. return

return1

Что не так с командой awk?

решение1

С командой awk все в порядке. Ваша проблема test.shне может быть найдена, как показывает сообщение. CentOS, вероятно, устанавливает ваш путь в переменную PATH.

Запустите его как sh ./test.sh item1(я предполагаю, что test.sh находится в вашем текущем каталоге)

Редактировать: Мне следовало бы уделить больше внимания скрипту, :проблема в grep. Это работает

VAR1=$1
VAR2=`grep "${VAR1}\:" file | awk '{print $2}'`
echo "${VAR2}";

Однако awk по умолчанию не распознает его :как разделитель, мне пришлось использовать

item1: return1
item2: return2

Я понятия не имею, как это могло бы работать на сервере или CentOS без этого изменения.

Связанный контент