Что вы пытаетесь сделать, удалите файл с именем !(myfile) ? Или же... ?
Kyle Jones
Ответы:
2
Это потому, что вы не установили extglob вариант, который придает особое значение !,
В вашем Bash напишите:
shopt -s extglob
Затем команда должна выполняться как положено.
По умолчанию, ! раскрываться к идентификатору процесса последней выполненной фоновой (асинхронной) команды. С extglob задавать, ! может быть использован для сопоставление с образцом , но только в сочетании с последующими скобками (),
Конечно, вы можете добавить эту строку в свой ~/.bash_profile чтобы он был установлен каждый раз, когда вы открываете Terminal.app. OS X по умолчанию запускает оболочку входа в систему, поэтому эти параметры должны быть установлены в ~/.bash_profile и не ~/.bashrc как вы, вероятно, привыкли из эмуляторов терминала Linux.
"!" имеет особое значение для истории команд, extglob позволяет использовать его для сопоставления с отрицательным шаблоном, который может переопределить это. Наблюдаемая ошибка связана с функцией истории (незначительное раздражение в том, что ошибочная команда не добавляется в историю ваших команд).
mr.spuratic
PID последнего фонового процесса $!, Просто ! по умолчанию не расширена до bash.
Lri
@ Лаури, да, в сочетании с $, как объяснено в справочном руководстве Bash. Может быть, эта часть не была ясна.
!(myfile)
? Или же... ?Ответы:
Это потому, что вы не установили
extglob
вариант, который придает особое значение!
,В вашем Bash напишите:
Затем команда должна выполняться как положено.
По умолчанию,
!
раскрываться к идентификатору процесса последней выполненной фоновой (асинхронной) команды. Сextglob
задавать,!
может быть использован для сопоставление с образцом , но только в сочетании с последующими скобками()
,Конечно, вы можете добавить эту строку в свой
~/.bash_profile
чтобы он был установлен каждый раз, когда вы открываете Terminal.app. OS X по умолчанию запускает оболочку входа в систему, поэтому эти параметры должны быть установлены в~/.bash_profile
и не~/.bashrc
как вы, вероятно, привыкли из эмуляторов терминала Linux.источник
$!
, Просто!
по умолчанию не расширена до bash.$
, как объяснено в справочном руководстве Bash. Может быть, эта часть не была ясна.