Bazı dosyaları kopyalamak için bir komut dosyası yazıyorum ve shopt -s dotglob cp gibi dotfiles kopyalamak ve etkinleştirmek için kullanmaya çalışıyorum .jshint.
shopt -s dotglobHata olmadan doğrudan bash isteminde çalıştırabilirim . Ancak, komut dosyasını çalıştırmak hatayı atar:
script.sh: 81: script.sh: shopt: not found
Bu senaryoyu bash kabuğunda, shebang başlığı ile çalıştırıyorum #!/usr/bin/env bash. Hata satırı:
shopt -s dotglob
cp -r $TEMP/img/* $TARGET/img/
cp -r $TEMP/js/* $TARGET/js/
cp -r $TEMP/less/* $TARGET/less/
Google'da yararlı bir şey bulamadığınızda, sorunun burada ne olduğu hakkında bir fikriniz var mı?
#!/bin/bashbaşlık ile denemek ister misiniz?
shoptbash yerleşiktir, shsahip değildir shoptve hata mesajı bir hata mesajı gibi görünür dash. Büyük olasılıkla buradaki hata bir bash betiği çalıştırıyor sh( dashvarsayılan olarak Ubuntu'da ). shBir symlink olsa bile bash, bir bash betiğini shçalıştırmak onunla çalıştırmakla aynı şey değildir bash.