Почему команда не работает как псевдоним?

Еще менее резко :Просто поставьте #перед каждой строкой/etc/apt/sources.list:

#deb http://cdn-fastly.deb.debian.org/debian stable main

0
22.03.2021, 14:19
1 ответ

Команда заключена в двойные -кавычки. В команде с двойными кавычками -вы используете $1и $2. Поскольку они используются в строке, заключенной в двойные -кавычки, оболочка заменит их 1-м и 2-м позиционными параметрами, (не имеет значения, что они находятся в одной подстроке -в кавычках внутри двойных -кавычек. строка ). Скорее всего они пустые. Это означает, что ваш псевдоним будет содержать awkсинтаксических ошибок.

В этом случае я бы предложил вместо этого использовать функцию оболочки. Гораздо проще получить правильное цитирование в функции оболочки:

synclinks () {
    find /home/foo/Pictures/ -type f -exec file --mime-type {} + |
    awk -F: '$2 ~ /image\// { print $1 }' | 
    xargs ln -t /home/foo/MyHardlinks
}

Вы должны определить это везде, где вы обычно определяете псевдонимы.

Я лишь немного изменил код awk, но никак не проверял код.

Руководство bashсодержит утверждение

For almost every purpose, aliases are superseded by shell functions.

3
28.04.2021, 22:57

Теги

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