Ich schreibe ein Skript, um einige Dateien zu kopieren und versuche, shopt -s dotglob cp zu ermöglichen, Dotfiles wie .jshintund so weiter zu kopieren.
Ich kann shopt -s dotglobohne Fehler direkt an einer Bash-Eingabeaufforderung ausgeführt werden. Das Ausführen des Skripts löst jedoch den Fehler aus:
script.sh: 81: script.sh: shopt: not found
Ich führe dieses Skript in der Bash-Shell mit dem Shebang-Header aus #!/usr/bin/env bash. Fehlerzeile:
shopt -s dotglob
cp -r $TEMP/img/* $TARGET/img/
cp -r $TEMP/js/* $TARGET/js/
cp -r $TEMP/less/* $TARGET/less/
Sie finden bei Google keine hilfreichen Informationen. Haben Sie eine Idee, wo das Problem liegt?
#!/bin/bashHeader?
shoptist eine eingebaute Bash, shhat keine shoptund die Fehlermeldung sieht aus wie eine Fehlermeldung von dash. Wahrscheinlich wird hier ein Bash-Skript ausgeführt sh(was in Ubuntu dashstandardmäßig der Fall ist ). Selbst wenn shes sich um einen Symlink handelt, bashist das Ausführen eines Bash-Skripts shnicht dasselbe wie das Ausführen mit bash.