Как запретить .bashrc запускать подкоманду в псевдониме при запуске? [дубликат]

Для MP3:

eyeD3 --add-image="cover.jpg":FRONT_COVER "file.mp3"

Для FLAC:

metaflac --import-picture-from="cover.jpg" "file.flac"

OGG/Vorbis кажется более сложным.

9
18.01.2017, 01:28
2 ответа

Используйте pkill, не изобретайте велосипед!

alias killguake="pkill -9 guake"
6
27.01.2020, 20:04

Используйте вместо него pkill :

alias killguake='pkill guake'

Это намного безопаснее, чем пытаться проанализировать таблицу процессов, выведенную ps .

Сказав это, я теперь объясню, почему ваш псевдоним не делает то, что вы хотите, но на самом деле используйте pkill .

Ваш псевдоним

alias killguake="kill -9 $(ps aux | grep guake | head -n -1 | awk '{print $2}')"

заключен в двойные кавычки. Это означает, что когда оболочка анализирует эту строку в сценарии инициализации оболочки, она выполняет подстановки команд ( $ (...) ). Таким образом, каждый раз, когда файл запускается, вместо того, чтобы давать вам псевдоним для уничтожения guake позже, он будет давать вам псевдоним, чтобы убить процесс guake , запущенный прямо сейчас .

Если вы перечислите свои псевдонимы (с псевдонимом ), вы увидите, что этот псевдоним выглядит примерно как

killguake='kill -9 91273'

или, возможно, даже просто

killquake='kill -9'

, если guake не был выполняется во время запуска оболочки.

Чтобы исправить это (но на самом деле просто используйте pkill ), вам нужно использовать одинарные кавычки и экранировать $ в скрипте Awk (который теперь находится в двойных кавычках. ):

alias killguake='kill -9 $(ps aux | grep guake | head -n -1 | awk "{print \$2}")'

Одна проблема с этим подходом в целом заключается в том, что вы будете сопоставлять процессы, принадлежащие другим пользователям. Во-вторых, вы, возможно, просто найдете команду grep guake вместо предполагаемого процесса. Другой заключается в том, что он выдаст ошибку, если процесс не был найден. Другой заключается в том, что вы вызываете пять внешних утилит для выполнения работы одной.

23
27.01.2020, 20:04

Теги

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