Показанный скрипт не запускается при последней команде.
Команда работает нормально, когда запускается индивидуально в терминале. Я пытался поместить часть! ... в параметр, перемещая его, используя различные скобки и разрывы строк и даже используя полные пути. Меня не интересуют альтернативные решения - меня интересует, почему это решение не работает конкретно в сценарии.
#!/bin/bash
mkdir alllogs
for i in $(locate *.log); do cp $i alllogs/; done
tar -zcvf alllogs/logs.gz alllogs/*
rm -v alllogs/!('logs.gz')
Сценарий собирает различные журналы из системы Linux и сжимает их в один файл, после чего он стирает копии журналов, оставляя сжатый файл один. Тем не менее, команда для удаления копий не выполняется при запуске через сценарий, но отлично работает с терминала.
Выдается ошибка:
./x.sh: line 7: syntax error near unexpected token `('
./x.sh: line 7: `rm -v alllogs/!('logs.gz')'