0

I have a simple bash command, which does some stuff and at some point tried to delete everything except a few things. When running inside a script, it fails. But when I try to run it again, it works.

This is my bash command:

#! /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

The output I get is:

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

However, when running it manually on my terminal it doesn't break:

blas@f1:~/projects/spaceship-go-gh-pages$ rm -rf -v !("spaceship-go"|"build-book.sh")
blas@f1:~/projects/spaceship-go-gh-pages$ echo $?
blasrodri
  • 448
  • 5
  • 16

0 Answers0