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 .jshint
y otras cosas.
Puedo ejecutar shopt -s dotglob
directamente 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/bash
encabezado más simple ?
shopt
es un bash incorporado, sh
no 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 dash
por defecto). Incluso si sh
es un enlace simbólico a bash
, ejecutar un script bash con sh
no es lo mismo que ejecutarlo con bash
.