При создании псевдонима; метки quatation, апострофы или точки с запятой могут предотвратить команду для работы правильно?

Мне назвали файл .bash_aliases где я сохраняю свое первое (и только один недо теперь), ведьма псевдонима работает правильно, но когда я пытался создать новый, терминалу не удалось распознать командную строку, я думаю, возможно, что причиной для этого является конфликт между апострофом ' и кавычки ", но я не уверен.

Псевдоним:

alias vid-dl="youtube-dl -o 'Videos/randon/%(title)s.%(ext)s'"

Ошибка: vid-dl: command not found

Я использовал псевдонимы следующим образом в терминале:

vid-dl URL

В .bash_aliases необходимо для использования чего-то, чтобы указать, что строка закончена? В JS и C# это использовало точку с запятой ;, на пример.

Когда я протестировал командную строку youtube-dl -o 'Videos/randon/%(title)s.%(ext)s без псевдонима это работало отлично.

0
задан 1 December 2019 в 04:48

2 ответа

Каждый использует обратную косую черту \ отметить следующий символ как "неособенный", таким образом, от МОЕГО ~/.bashrc:

alias bigopenfiles="sudo lsof / | awk '{if(\$7 > 1048576) print \$7/1048576 \"MB\" \" \" \$9 }' | sort -n -u" 
# 
alias deletedfiles="sudo lsof / | egrep 'PID|\(deleted\)'"
# 

Давайте демонтируем сложное выражение:

alias bigopenfiles="sudo lsof / | awk '{if(\$7 > 1048576) print \$7/1048576 \"MB\" \" \" \$9 }' | sort -n -u"

окружается "s, таким образом, любого символа, который перепутал бы код парсинга, нужно baskslash-оставить.

's окружение awk программа не представляет интереса для кода парсинга (это ищет соответствие ").

Однако знаки доллара являются особенными (мог означать 7-й параметр оболочки, где Вы определяете псевдоним, глупую идею), и должен быть оставлен из обратной косой черты, например. \$7.

Затем существуют рассчитывать-пальцы \"MB\" \" \", две заключенных в кавычки строки для awk, со всеми оставленными из обратной косой черты метками кавычки.

's окружение awk программа не представляет интереса для кода парсинга (это ищет соответствие ").

наконец, существуют другие команды в псевдониме (на этот раз, это справедливо | sort -n -u, и,

наконец,

близкая кавычка (") НЕ оставленный из обратной косой черты.

В следующий раз, когда строка анализируется, обратные косые черты исчезают:

walt@bat:~(0)$ alias bigopenfiles
alias bigopenfiles='sudo lsof / | awk '\''{if($7 > 1048576) print $7/1048576 "MB" " " $9 }'\'' | sort -n -u'
walt@bat:~(0)$ 
0
ответ дан 21 December 2019 в 23:45

Необходимо закрыть текущий терминал и открыть новое окно терминала для .bash_aliases файл для вступления в силу.

Или, просто . ~/.bash_aliases.

0
ответ дан 21 December 2019 в 23:45

Другие вопросы по тегам:

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