3

Я видел, как люди используют kill %% вместо kill % . Насколько я могу судить, они оба делают то же самое. Есть ли разница?

2 ответа2

5

Цитирование документации:

Существует несколько способов ссылки на задание в оболочке. Символ% вводит спецификацию задания (jobspec). Номер задания n может упоминаться как% n. Задание также может упоминаться с использованием префикса имени, использованного для его запуска, или с использованием подстроки, которая появляется в его командной строке. Например,% ce относится к остановленной работе ce. Если префикс соответствует более чем одному заданию, bash сообщает об ошибке. С помощью %?ce, с другой стороны, относится к любому заданию, содержащему строку ce в его командной строке. Если подстрока соответствует более чем одному заданию, bash сообщает об ошибке. Символы %% и%+ относятся к понятию оболочки текущего задания, которое является последним заданием, остановленным, когда оно находилось на переднем плане или началось в фоновом режиме. На предыдущее задание можно ссылаться с помощью% -. Если есть только одна работа,%+ и% - могут использоваться для ссылки на эту работу. В выводе, относящемся к заданию (например, выводе команды заданий), текущее задание всегда помечается знаком +, а предыдущее задание -. Один% (без сопровождающей спецификации задания) также относится к текущей работе.

(акцент мой)

-4

%% используется в сценариях Windows для обозначения «%», так как% - это специальный символ. Однако интерпретаторы сценариев Windows также стараются быть умными, и если% дается сам по себе с пробелами вокруг него, то он обрабатывается как% .. Это раздражает и глупо, но вы идете.

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