5

Я не совсем уверен, что я делаю не так с этим. Я пытаюсь запустить команду

alias localip='ip -4 -o addr show eth0 | egrep -o '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}' | head -n 1'

Если я запускаю команду

ip -4 -o addr show eth0 | egrep -o '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}' | head -n 1

Я получаю ожидаемый результат, однако при попытке создать псевдоним с помощью команды я получаю

-bash: синтаксическая ошибка рядом с неожиданным токеном `('

Любая помощь будет оценена. ТИА.

2 ответа2

7

Вы вкладываете одинарные кавычки в одинарные кавычки. Это не работает

Попробуйте использовать " двойные кавычки " во внутреннем выражении.

6

Я нашел гораздо более чистое решение - просто создать функцию и назвать ее псевдоним после функции, например:

alias localip=GetLocalIP

function GetLocalIP()
{
   ip -4 -o addr show eth0 | egrep -o '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}' | head -n 1
}

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