Я создаю несколько небольших тестовых файлов, чтобы начать изучение сценариев bash.Ошибка bash «команда не найдена», хотя команда срабатывает
Один из файлов, которые я создал, выполняет команду rsync. Команда успешно запускается, но строка в скрипте, вызывающая команду, срабатывает, выдает ошибку line 15: =building: command not found
, когда сценарий запускается в терминале.
Вот сценарий:
#!/bin/bash
clear
cd ~/Desktop
mkdir -p ./GGERPTTESTINGSANDBOX/source_folder/
mkdir -p ./GGERPTTESTINGSANDBOX/target_folder/
touch ./GGERPTTESTINGSANDBOX/source_folder/file1.txt
touch ./GGERPTTESTINGSANDBOX/source_folder/file2.txt
touch ./GGERPTTESTINGSANDBOX/source_folder/file3.txt
statement="/usr/bin/rsync -avzh --progress ./GGERPTTESTINGSANDBOX/source_folder/ ./GGERPTTESTINGSANDBOX/target_folder/"
$statementResult=$($statement) # the error points to this line.
Как я уже говорил выше, когда я запускаю этот скрипт Rsync прекрасно работает. Я вытащил команду и уволил ее прямо в терминале, и все работает отлично.
Сначала у меня не было полного пути к команде rsync в скрипте, поэтому я добавил, что он думал, что вытащить команду из моей переменной пути может быть проблемой, но она все еще бросает ошибку.
Я также попытался поместить заявление непосредственно в символы $()
, а не передавать его через переменную, и ошибка все еще происходит.
Любые идеи о том, что мне не хватает?
Установка переменной в bash -> 'var = $ (command)'. А затем вы можете использовать переменную с '$ var'. – fedorqui