ฉันกำลังเขียนสคริปต์เพื่อคัดลอกไฟล์บางไฟล์และพยายามใช้shopt -s dotglob
เพื่อเปิดใช้งาน cp เพื่อคัดลอก dotfiles like .jshint
and whatnot
ฉันสามารถรันshopt -s dotglob
โดยตรงที่ bash prompt โดยไม่มีข้อผิดพลาด อย่างไรก็ตามการรันสคริปต์จะพ่นข้อผิดพลาด:
script.sh: 81: script.sh: shopt: not found
#!/usr/bin/env bash
ฉันทำงานสคริปต์นี้ในเปลือกทุบตีด้วยส่วนหัว shebang บรรทัดข้อผิดพลาด:
shopt -s dotglob
cp -r $TEMP/img/* $TARGET/img/
cp -r $TEMP/js/* $TARGET/js/
cp -r $TEMP/less/* $TARGET/less/
ไม่พบสิ่งที่มีประโยชน์บน google ความคิดใด ๆ ว่าปัญหาอยู่ที่นี่หรือไม่
#!/bin/bash
หัวข้อที่ง่ายกว่านี้ไหม
shopt
คือ builtin ทุบตีsh
ไม่ได้และดูข้อผิดพลาดเช่นข้อผิดพลาดจากshopt
dash
ดังนั้นข้อผิดพลาดที่นี่ส่วนใหญ่ใช้สคริปต์ทุบตีด้วยsh
(ซึ่งใน Ubuntu เป็นdash
ค่าเริ่มต้น) แม้ว่าsh
เป็น symlink ไปbash
ทำงานสคริปต์ทุบตีด้วยไม่ได้เช่นเดียวกับการทำงานด้วยsh
bash