regex Immaginiamo che sul mio server, ho i seguenti file:script Bash e questione
[email protected]:/var/log/foo$ ls
fooFile1 fooFile2 logFile logFile.1 logFile.2
ho voluto creare un archivio contenente tutti i file, ma logFile *.. Così mi è venuta con il comando:
[email protected]:~$ tar -czf foo.tar.gz /var/log/foo/!(logFile.*)
e funziona benissimo! Tuttavia, quando si cerca di creare uno script che fa lo stesso lavoro:
#!/bin/bash
tar -czf foo.tar.gz /var/log/foo/!(logFile.*)
mi sono imbattuto il seguente errore:
./test.sh: line 3: syntax error near unexpected token '('
./test.sh: line 3: 'tar -czf foo.tar.gz /var/log/foo/!(logFile.*)'
il problema non è Tar relativi (che ho incontrato lo stesso problema utilizzando ls
invece di tar
)
Non capisco da dove provenga questo errore. Qualcuno potrebbe dirmi dove sbaglio?
conosciuto su Ubuntu 12.04
È opportuno sottolineare esplicitamente che l'opzione è attivata per impostazione predefinita in una shell interattiva, che è la causa della differenza di comportamento. –
Dovrò approfondire l'argomento. Grazie a tutti e due ! –