1

Команда отлично работает на Linux, но на OS X Mountain Lion, когда я делаю:

rm !(myfile)

Баш жалуется:

bash: !: event not found

Есть ли способ сделать то же самое на OS X?

1 ответ1

2

Это потому, что вы не установили параметр extglob , который придает особое значение ! ,

В вашем Bash напишите:

shopt -s extglob

Затем команда должна выполняться как положено.

По умолчанию !расширяется до идентификатора процесса последней выполненной фоновой (асинхронной) команды. С набором extglob ! может использоваться для сопоставления с образцом, но только в сочетании с круглыми скобками после него () .

Конечно, вы можете добавить эту строку в ваш ~/.bash_profile чтобы она была установлена каждый раз, когда вы открываете Terminal.app. По умолчанию OS X запускает оболочку входа в систему, поэтому эти параметры должны быть установлены в ~/.bash_profile а не в ~/.bashrc как вы, вероятно, привыкли к эмуляторам терминала Linux.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .