Сценарий оболочки, сохраняющий значение команды в переменной - PullRequest
2 голосов
/ 05 августа 2011

Я пытаюсь напечатать значение VARI в той же строке, за которой следует запятая, чтобы я мог получить файл CSV с этими значениями, но я не могу сохранить значение VARI = 'cat filename | head -1 | cut -d, -f${i}'

i=0
while (( i<130)) ;
do
  if [[ $i -eq 1 ||  $i -eq 9 || $i -eq 12 || $i -eq 23 || $i -eq 25 || $i -eq 29 ]]
  then
    VARI = 'cat filename | head -1 | cut -d, -f${i}'
    echo  "$VARI ,"   
  fi
  let i=$i+1;
done

ожидаемый результат -

4,abc,5,8,xyz,9

Пожалуйста, дайте мне знать, что я делаю неправильно, спасибо!

1 Ответ

7 голосов
/ 05 августа 2011

использовать обратные кавычки (или $() - может быть вложенным), а не одинарные кавычки:

VARI=`cat filename | head -1 | cut -d, -f${i}` # or:
VARI=$(cat filename | head -1 | cut -d, -f${i})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...