Знак процента ( % ) перед командой оболочки

Я просто вставил кучу кода в свою оболочку, но забыл удалить ведущий % перед выполнением команды. Похоже, он ничего не сделал. Почему это ничего не делает в моей оболочке (zsh)?

> % echo foo

In bash, я получаю следующее

> % echo foo
bash: fg: %: no such job

Я просто хочу убедиться, что выполнение моей команды не имело побочного эффекта.

5
задан Dave
источник

1 ответов

% ссылается к "jobid" которое использовано как часть" особенностей управлением работы и управлением производственным процессом " zsh. Цитата из руководства пользователя:

'fg' is the default operation on jobs referred to with the '%' notation,
so just typing '%1' with no command name would have worked, too.

пример:

$> man zshall &
[1]  + 31392 suspended (tty output)  man zshall
$> jobs
[1]  + suspended (tty output)  man zshall
$> %
<manpage-opens-for-zshall>

подробнее об этом здесь: http://zsh.sourceforge.net/Guide/zshguide03.html#l39

ответить real вопрос: если ваш zsh не помещает туда предупреждение ("fg: нет текущей работы" или тому подобное), тогда есть / была работа. Пример:

$> sleep 60 &
$> % echo foo
[1]  + 411 running    sleep 60
fg: job not found: echo

на % только что вернулся фоновый процесс и запускает его. Через 60 секунд он получил следующий "jobid" , который не был найден.

таким образом: поведение, которое вы испытали, немного странно. Без вашего полного zshrc трудно сказать, что именно происходит. Похоже, вам удалось сказать вашему zsh, что символ " % " начинает комментарий. Я хотел бы проверить histchars параметр для его 3-е значение:

$> echo $histchars
8
отвечен akira 2014-10-15 11:50:39
источник

Другие вопросы bash command-line shell zsh