Греп не работает внутри скрипта

Я пытаюсь написать скрипт, который берет строку, а затем ищет все экземпляры этой строки файла. Когда я запускаю команду за пределами скрипта, она работает отлично, но если я пытаюсь запустить ее в скрипте, это говорит о том, что файл не существует. Вот мой код

if [ "$#" -eq 0 ]; then echo "Please enter an argument" else $result=`grep $1 Sales.csv` echo $result fi

И да, файл называется Sales.csv. Я бы подумал, что это связано с форматом файла, но команда работает вне сценария, поэтому я запутался.

Edit: Должен был упомянуть, что я запускаю linux из VirtualBox

-1
задан 10 November 2017 в 22:06

2 ответа

При назначении переменной вы просто ставите все, что хотите, в качестве переменной минус $. Помещение $ перед переменной делает его результатом переменной. Поскольку переменная еще не определена в скрипте, строка должна быть:

result=$(grep $1 /some/path/to/Sales.csv)

Затем вызов следующей переменной:

echo $result

Надеюсь, это поможет!

3
ответ дан 18 July 2018 в 03:31

При назначении переменной вы просто ставите все, что хотите, в качестве переменной минус $. Помещение $ перед переменной делает его результатом переменной. Поскольку переменная еще не определена в скрипте, строка должна быть:

result=$(grep $1 /some/path/to/Sales.csv)

Затем вызов следующей переменной:

echo $result

Надеюсь, это поможет!

3
ответ дан 24 July 2018 в 17:51

Другие вопросы по тегам:

Похожие вопросы: