Я хочу запустить сценарий оболочки через crontab, который что-то делает, а затем запускает другой скрипт оболочки, который проверяет определенную папку для определенных файлов и создает каталог для каждого файла. Первый сценарий "my_crontab.sh" выглядит следующим образом:скрипт оболочки crontab запускает другой скрипт: удалить ошибку char
#!/bin/bash
cd /home/myusername/myfolder
python mypythonscript.py
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/myusername/myfolder
bash start.sh
Crontab выполняет "my_crontab.sh" и "start.sh" получает также называется (я знаю из файла журнала кронтаб)
Этот это то, что "start.sh" выглядит следующим образом:
#!/bin/bash
echo "start.sh started"
if [ $(find -maxdepth 1 -type f | wc -l) -ne 0 ];
then
for i in *.jpg
do
folder="${i/.jpg/}"
mkdir ../folders/$folder
done
else
echo "nothing to do"
fi
теперь я получаю сообщение об ошибке: /bin/sh: 7: /home/myusername/myfolder/start.sh: Bad substitution
Я уже три ed folder=${ i:0:-4 }
, но это тоже не работает. Любые идеи, как это исправить?
Ваш скрипт работает с 'sh' и не поддерживает код bash, такой как' $ {i/.jpg /} '(' sh' означает 'bash', что C является C++). Вы должны обновить 'my_crontab.sh', чтобы иметь' #!/Bin/bash'. Обновление 'start.sh' недостаточно. Исправьте это в дополнение к проблеме расстояния, упомянутой Дэвидом К. Рэнкином –