Псевдоним в .bash_aliases выполняется неправильно

У меня есть псевдоним в .bash_aliases, и он дает мне неправильный вывод, когда я инициировал его.

alias print="echo a b | awk '{print $2}'"

неправильный вывод:

slazer@ubuntu:~/Desktop/xpalenik_pb161/hw03/examples/extra$ print
a b

ожидаемый вывод:

slazer@ubuntu:~/Desktop/xpalenik_pb161/hw03/examples/extra$ echo a b | awk '{print $2}'
b

другая информация:

slazer@ubuntu:~/Desktop/xpalenik_pb161/hw03/examples/extra$ cat ~/.bashrc | grep 'alias print'
slazer@ubuntu:~/Desktop/xpalenik_pb161/hw03/examples/extra$ cat ~/.bash_aliases | grep 'alias print'
alias print="echo a b | awk '{print $2}'"
slazer@ubuntu:~/Desktop/xpalenik_pb161/hw03/examples/extra$ alias | grep 'alias print'
alias print='echo a b | awk '\''{print }'\'''
slazer@ubuntu:~/Desktop/xpalenik_pb161/hw03/examples/extra$ print
a b
slazer@ubuntu:~/Desktop/xpalenik_pb161/hw03/examples/extra$ echo a b | awk '{print $2}'
b
slazer@ubuntu:~/Desktop/xpalenik_pb161/hw03/examples/extra$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.3 LTS
Release:    14.04
Codename:   trusty

Я не установил все обновления. Это могло быть проблемой?

0
задан 15 November 2015 в 19:39

1 ответ

Вы должны убежать $, чтобы предотвратить его расширяемый раковиной; так как это ни до чего не расширяется, Ваш псевдоним становится эквивалентным

alias print="echo a b | awk '{print }'"

Попытка вместо этого

alias print="echo a b | awk '{print \$2}'"
4
ответ дан 30 September 2019 в 04:20

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

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