У меня есть простая команда bash, которая делает некоторые вещи и в какой-то момент пыталась удалить все, кроме нескольких вещей. При запуске внутри скрипта происходит сбой. Но когда я пытаюсь запустить его снова, он работает.
Это моя команда bash
:
#! /bin/bash
set -e
cd spaceship-go
git checkout master
git pull origin master
mdbook build
cd ..
rm -rf -v !("spaceship-go"|"build-book.sh")
mv spaceship-go/book/* .
rm -rf spaceship-go/book
Вывод, который я получаю:
blas@f1:~/projects/spaceship-go-gh-pages$ ./build-book.sh
Already on 'master'
Your branch is up to date with 'origin/master'.
From https://github.com/blasrodri/spaceship-go
* branch master -> FETCH_HEAD
Already up to date.
2020-06-13 13:27:52 [INFO] (mdbook::book): Book building has started
2020-06-13 13:27:52 [INFO] (mdbook::book): Running the html backend
./build-book.sh: 9: Syntax error: "(" unexpected
Однако при запуске его вручную на моем терминале он не ломается:
blas@f1:~/projects/spaceship-go-gh-pages$ rm -rf -v !("spaceship-go"|"build-book.sh")
blas@f1:~/projects/spaceship-go-gh-pages$ echo $?
shopt -s extglob
в вашем скрипте, он включен по умолчанию в вашей интерактивной оболочке - person Inian   schedule 13.06.2020source <script name>
- person blasrodri   schedule 13.06.2020