Sto riscontrando problemi nell'esecuzione di uno script bash zsh
. Lo script è simile a quello sotto e dovrebbe funzionare sotto bash:
#!/bin/bash
echo "<235234>" | egrep -oe [0-9]+
Tuttavia, la mia shell è attivata per impostazione predefinita zsh
, quindi per eseguire lo script sopra quello che faccio è digitare /bin/bash
sul mio zsh
prompt, quindi eseguo . script.sh
.
Tuttavia, questo si traduce in un errore e ottengo:
zsh: no matches found: [0-9]+
(Dovrei ottenere 235234
invece).
A questo punto sono confuso e ho le seguenti domande:
- Se ci sono
bash
, perché visualizzo un errorezsh
? - Perché il
egrep
regexp fallisce? L'espressione regolare mi sembra corretta.
Nota: nel caso in cui sia importante, non dovrei modificare lo script (lo script è condiviso da più utenti e non dovremmo modificarlo).
Grazie
exec zsh
sul mio~/.bashrc
, né sul mio~/.profile
(non ho nemmeno un.profile
sulla mia directory home). Non ricordo come sono riuscito a creare lazsh
mia shell predefinita. Inoltre, scusate la confusione, ma la prima riga della mia sceneggiatura è lo shebang#!/bin/bash
. Con questo, non so ancora perché il sourcing del filezsh
non funzioni (se hai qualche idea a riguardo fammi sapere). In entrambi i casi, contatterò l'amministratore per aggiornare lo script per aggiungere virgolette al regexp.