工作,我有这个两个命令的工作:命令不作为别名
awk -F'[= ]' '/^password=/ && p !~ /clientreadonly/{print $2} {p=$0}' ~/.my.cnf
perl -00 -ane '/\[client\].password=(\S+)/s && print $1' < ~/.my.cnf
他们可以从这样的.my.cnf用grep PASS2:
# longer
# comment text
[clientreadonly]
password=pass1 # comment
port=3306
user=test_ro
socket=/var/lib/mysql/mysql.sock
[client]
password=pass2 # comment
port=3306
user=test
socket=/var/lib/mysql/mysql.sock
但是,如果我让他们为别名:
alias mysql-get-password="perl -00 -ane '/\[client\].password=(\S+)/s && print $1' < ~/.my.cnf"
alias mysql-get-password2="awk -F'[= ]' '/^password=/ && p !~ /clientreadonly/{print $2} {p=$0}' ~/.my.cnf"
perl的一个返回
[client]
password=pass2 # comment
port=3306
user=test
socket=/var/lib/mysql/mysql.sock
个
和awk的变种回报
password=pass1 # comment
password=pass2 # comment
为什么结果作为别名如此不同?当我在外壳直接使用命令,我得到的只是pass2
提示:'-00'应该是'-0777'。前者实际上并不sl;;后者的确如此。 – ikegami