Estoy escribiendo una secuencia de comandos para copiar algunos archivos, y estoy tratando de usar shopt -s dotglob para habilitar cp para copiar archivos de puntos como .jshinty otras cosas.
Puedo ejecutar shopt -s dotglobdirectamente en un indicador de bash sin error. Sin embargo, ejecutar el script arroja el error:
script.sh: 81: script.sh: shopt: not found
Estoy ejecutando este script en bash shell, con el encabezado shebang #!/usr/bin/env bash. Línea de error:
shopt -s dotglob
cp -r $TEMP/img/* $TARGET/img/
cp -r $TEMP/js/* $TARGET/js/
cp -r $TEMP/less/* $TARGET/less/
Al no encontrar nada útil en Google, ¿alguna idea de cuál es el problema aquí?
#!/bin/bashencabezado más simple ?
shoptes un bash incorporado, shno tiene shopt, y el mensaje de error parece un mensaje de error de dash. Entonces, lo más probable es que el error aquí esté ejecutando un script bash con sh(que en Ubuntu es dashpor defecto). Incluso si shes un enlace simbólico a bash, ejecutar un script bash con shno es lo mismo que ejecutarlo con bash.