Dominio:
ls /etc/pve/lxc/*([0-9]).conf
Trabajando en consola:
- Resultado: archivo encontrado!
/etc/pve/lxc/107.conf
pero no en guión:
- #!/bin/bash
- Resultado: ERROR
syntax error near unexpected token `('
ls /etc/pve/lxc/*([0-9]).conf
Luego enmascaré los corchetes en el guión.:
ls /etc/pve/lxc/*\([0-9]\).conf
- Resultado: No se encontró ningún archivo
ls: cannot access '/etc/pve/lxc/*([0-9]).conf': No such file or directory
Respuesta1
La expresión *([0-9]).conf
es del estilo KSH.globo extendido. La característica está habilitada de forma predeterminada para shells bash interactivos, pero para usarla en un script bash se debe habilitar explícitamente usando
shopt -s extglob
Ver tambiénExpansión comodín que funciona en la línea de comando pero no en un script bash
Respuesta2
La información que no proporciona es qué intérprete de comandos se utiliza en el script. Esto se indica mediante el shebang, es decir, la primera línea (por ejemplo #/bin/sh
).
En Ubuntu, la consola ejecuta bash de forma predeterminada como shell interactivo. Si su script usa otro intérprete de comandos, por ejemplo /bin/sh, la sintaxis específica de bash no funcionará.