Почему двойной амперсанд объединил выполнения условий в цепочку в фоне вместе последний?

Лучшей вещью измениться являются точки на дюйм, потому что это делает Ваши шрифты больше, не портя Ваши приложения. Эта статья говорит о том, как 'оптимизировать' дисплей шрифта, который не является точно, что Вы хотите. Попытайтесь использовать эти инструкции вместо этого для создания шрифтов больше, а не меньшими (который является тем, каких 96 точек на дюйм делает). Не бойтесь поднять это до 2-300, если Вы должны.

Если Вы запускаете X с startx, редактирования /usr/bin/startx и изменение:

defaultserverargs=""

кому:

defaultserverargs="-dpi 120"

Если Вы запускаете X с менеджера по входу в систему, редактируете конфигурационный файл и добавляете - точки на дюйм 120 к концам /usr/bin/X команды. Под Slackware 13.37 файлы /etc/X11/xdm/Xservers (для xdm) и /usr/share/config/kdm/kdmrc (для kdm). В 13,1, файл для xdm был /etc/X11/xinit/Xservers.

3
25.08.2016, 04:58
3 ответа

, Если вы не хотите, чтобы фон относился к целой строке, затем используйте оценка :

sleep 2 && eval 'sleep 10 &'

Теперь только вторая команда будет фоновым заданием, и это будет надлежащее фоновое задание, на котором вы можете ожидать .

3
27.01.2020, 21:19

После редактирования: дело в том, что && имеет больший приоритет, чем &, так что все это связывается в И список , и получает фон как единое целое. См. Lists of Commands in the manual, хотя это не очень понятно.

Наименьшее изменение в вашем оригинальном коде, которое будет работать, это

if condition-command && condition-command; then background-job & fi

(это является if , но не цепочечный). Только


condition-command && condition-command && (background-job &)

должно сработать.

1
27.01.2020, 21:19

[По сути, это комментарий jimmij, превращенный в ответ.]

Вы можете использовать { }для переопределения приоритета обычного оператора, не создавая подоболочку, как ( ). Так что используйте:

condition-command && condition-command && { background-job & }

И аналогично для примера sleep/echo:

sleep 2 && { echo foo & }; sleep 1; echo bar; wait # prints foo, then bar: correct

Обратите внимание, что {и }являются ключевыми словами оболочки, а не метасимволами, такими как (и ), поэтому вам нужен пробел между {и командой внутри него (, чтобы он не рассматривался как часть имени команды )и терминатора команды, такого как &или ;перед }(, чтобы он не рассматривался как еще один аргумент ). Кроме того, если после }есть другая команда, вам нужна точка с запятой (или другой разделитель команд )между ними.

1
20.08.2021, 12:42

Теги

Похожие вопросы