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 tieneshopt
, y el mensaje de error parece un mensaje de error dedash
. Entonces, lo más probable es que el error aquí esté ejecutando un script bash consh
(que en Ubuntu esdash
por defecto). Incluso sish
es un enlace simbólico abash
, ejecutar un script bash consh
no es lo mismo que ejecutarlo conbash
.