Вы забыли заключить в кавычки оператор glob [[:space:]]
и используете такую оболочку, как csh
, tcsh
, fish
(, хотя fish
не поддерживает [...]
операторы glob ), zsh
,bash -O failglob
(скорее всего (t)csh
учитывая сообщение об ошибке )о том, что (правильно )не удается выполнить команду, когда глобус не совпадает.
tcsh
не распознает [:space:]
классы символов POSIX, но этот s/=[[:space:]]0/-180/
по-прежнему распознается как глобус.
После mkdir -p 's/=a]0/-180'
глобус будет совпадать. Это s/=[[:space:]]0/-180/
будет расширено до s/=a]0/-180/
, и вы не получите ошибку No match
.
Вместо этого здесь вы хотите процитировать это, чтобы оболочка не рассматривала его как шаблон глобуса и передала строку буквально в sed
.
(Здесь я также добавляю отсутствующий *
, чтобы разрешить 0 или более символов пробела в шаблоне, и отсутствующий =
в качестве замены):
sed 's/=[[:space:]]*0/=-180/'
Или сохранить исходный интервал:
sed 's/\(=[[:space:]]*\)0/\1-180/'
В Интернете есть множество руководств и фрагментов, в основном для Bash, но также и для Zsh. Например, это руководство , в котором используется следующий код:
# Load version control information
autoload -Uz vcs_info
precmd() { vcs_info }
# Format the vcs_info_msg_0_ variable
zstyle ':vcs_info:git:*' formats 'on branch %b'
# Set up the prompt (with git branch name)
setopt PROMPT_SUBST
PROMPT='%n in ${PWD/#$HOME/~} ${vcs_info_msg_0_} > '
Он опирается на vcs_info
от Zsh, чтобы предоставить вам информацию о ветке.
Выполнив поиск в Интернете по запросу «git prompt zsh», вы найдете больше. См. также этот вопрос или этот или более общее руководство поvcs_info
.