Saya sedang menulis skrip untuk menyalin beberapa file di sekitar, dan mencoba menggunakan shopt -s dotglob
untuk mengaktifkan cp untuk menyalin dotfiles suka .jshint
dan yang lainnya.
Saya bisa menjalankan shopt -s dotglob
langsung di bash prompt tanpa kesalahan. Namun, menjalankan skrip melempar kesalahan:
script.sh: 81: script.sh: shopt: not found
Saya menjalankan skrip ini di bash shell, dengan header shebang #!/usr/bin/env bash
. Baris kesalahan:
shopt -s dotglob
cp -r $TEMP/img/* $TARGET/img/
cp -r $TEMP/js/* $TARGET/js/
cp -r $TEMP/less/* $TARGET/less/
Tidak menemukan sesuatu yang bermanfaat di google, ada ide apa masalahnya di sini?
#!/bin/bash
tajuk yang lebih sederhana ?
shopt
adalah bash builtin, sh
tidak ada shopt
, dan pesan kesalahan terlihat seperti pesan kesalahan dash
. Jadi, kemungkinan besar kesalahan di sini adalah menjalankan skrip bash sh
(yang dash
secara default di Ubuntu ). Meskipun sh
symlink adalah bash
, menjalankan skrip bash dengan sh
tidak sama dengan menjalankannya bash
.