Я пытаюсь написать скрипт, который берет строку, а затем ищет все экземпляры этой строки файла. Когда я запускаю команду за пределами скрипта, она работает отлично, но если я пытаюсь запустить ее в скрипте, это говорит о том, что файл не существует. Вот мой код
if [ "$#" -eq 0 ]; then
echo "Please enter an argument"
else
$result=`grep $1 Sales.csv`
echo $result
fi
И да, файл называется Sales.csv. Я бы подумал, что это связано с форматом файла, но команда работает вне сценария, поэтому я запутался.
Edit: Должен был упомянуть, что я запускаю linux из VirtualBox
При назначении переменной вы просто ставите все, что хотите, в качестве переменной минус $. Помещение $ перед переменной делает его результатом переменной. Поскольку переменная еще не определена в скрипте, строка должна быть:
result=$(grep $1 /some/path/to/Sales.csv)
Затем вызов следующей переменной:
echo $result
Надеюсь, это поможет!
При назначении переменной вы просто ставите все, что хотите, в качестве переменной минус $. Помещение $ перед переменной делает его результатом переменной. Поскольку переменная еще не определена в скрипте, строка должна быть:
result=$(grep $1 /some/path/to/Sales.csv)
Затем вызов следующей переменной:
echo $result
Надеюсь, это поможет!