Можно создать сценарий для запуска myAPICommand.exe, но сначала удалить файл myFile.txt, если он существует. Тогда вам не придется постоянно выполнять команду rm для очистки.
Нравится:
if [ -e myFile.txt ]
then
rm myFile.txt && myAPICommand.exe
else
Вы также можете сделать так, чтобы ваша команда убирала за собой. Если файл пуст, добавьте что-то вроде следующего.
Нравится:
if [ -s myFile.txt ]
then
EXIT 0
else
rm myFile.txt && EXIT 1
fi
Как указал arielCo , содержимое скрипта при выполнении вызывает ошибки, вы можете изменить приведенный выше цикл скрипта for
, чтобы устранить проблему.
for file in `ls PATH_TO_FILES/Form?.csv
преобразовано в
for file in `ls $PATH_TO_FILES/Form?.csv`
Добавление $
перед переменной заменит значение переменной.
Сообщение об ошибке не относится к final_project.sh
. Он открывается и запускается, и сообщение об ошибке из ls
, которое, как я полагаю, вызывается сценарием :, жалуется на два аргумента, которые не соответствуют никаким файлам, которые он может найти.
Пожалуйста, вставьте содержимое вашего скрипта вместо снимка экрана (используйте кнопку {} на панели инструментов, чтобы отформатировать его как код ), и полный путь к этим файлам.csv. Возможно, мы сможем выяснить, где он ищет эти файлы.
Прочитав все комментарии и не найдя его, предположим, что ваши циклы for -включают$
Я бы сказал, что PATH_TO_FILES=home/Desktop/FINAL_Project/final_exam
отсутствует ведущий /
.
Возможно, ваш скрипт ищет в<current dir>home
Вы можете узнать это, выполнив "эхо" переменную в начале вашего скрипта:
...
echo $PATH_TO_FILES
...
Кроме того, поскольку это указано в заголовке вопроса, вам не нужно chmod
запускать скрипт, когда вы запускаете его с помощью sh
или bash
вот так
bash my_script.sh
На самом деле, вы можете полностью опустить шебанг.
Надеюсь, это поможет