Je ces deux commandes qui fonctionnent:commande ne fonctionne pas comme alias
awk -F'[= ]' '/^password=/ && p !~ /clientreadonly/{print $2} {p=$0}' ~/.my.cnf
perl -00 -ane '/\[client\].password=(\S+)/s && print $1' < ~/.my.cnf
ils peuvent grep pass2 d'un .my.cnf comme celui-ci:
# 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
Mais si je les fais comme alias:
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"
l'une perl retourne
[client]
password=pass2 # comment
port=3306
user=test
socket=/var/lib/mysql/mysql.sock
et le rendement variant awk
password=pass1 # comment
password=pass2 # comment
Pourquoi est le résultat si différent alias? Lorsque j'utilise les commandes directement dans la coquille, je reçois juste pass2
Conseil: '-00' devrait être' -0777'. Le premier ne fait pas de slurp; ce dernier fait. – ikegami