Я можу запустити цю команду з мого командного рядка:
cp -r folder/!(exclude-me) ./
Для рекурсивного копіювання всього вмісту, folder крім підкаталогу, названого exclude-meв поточному каталозі. Це працює точно за призначенням. Однак мені це потрібно для роботи з написаним баш сценарієм, де я маю це:
if [ -d "folder" ]; then
cp -r folder/!(exclude-me) ./
rm -rf folder
fi
Але коли я запускаю сценарій:
bash my-script.sh
Я отримую це:
my-script.sh: line 30: syntax error near unexpected token `('
my-script.sh: line 30: ` cp -r folder/!(exclude-me) ./'
І я втрачаю, чому це працює з командного рядка, але точно такий же рядок не працює в скрипті bash.
env > file1сценарій та виконати./it, а потімenv > file2іsource it, сподіваючись, що я знайшов би різницю вenvs, що не так. Як я можу програмно перерахувати всю різницю між двома оболонками (у цьому випадку інтерактивними проти неінтерактивними)?