J'essaie de créer un alias pour une commande pour voir l'utilisation de la mémoire, mais, naïf, p> J'ai essayé avec des guillemets doubles, p> donne l'erreur p> tous les conseils appréciés. p> p> totalmem = "ps ... | awk '{somme + = $ 1} end {imprimé somme / 1024} '" code> ou p>
totalmem =" ps ... | awk "{somme + = $ 1} end {imprimé Sum / 1024}" ' code>,
s'échapper, p>
totalmem = 'ps ... | awk \' {somme + = 1 $} end {imprimé Sum / 1024} \ '' code>,
Ou échapper des devis doubles ... mais je n'arrive pas à le faire fonctionner. p>
totalmem = 'ps ... | awk \ "{somme + = $ 1} fin {imprimé SUM / 1024 } \ "' code>, p>
3 Réponses :
Comme ceci:
alias totalmem='ps -u user -o rss,command | grep -v peruser | awk '\''{sum+=$1} END {print sum/1024}'\'
Vous l'avez presque presque, le ou avec le motif à l'intérieur $ code> sera élargi en double guillemets, afin de répondre à une évasion supplémentaire:
awk code> comme suggéré par iiseymour em>: p>
merci dieu du marteau. Je venais de trouver une solution avec alias mémus = 'ps -u utilisateur -o rss, commandement | grep -v Peruser | awk '"' '"' {somme + = $ 1} end {imprimé sommet / 1024} '"' '' '' '' ' code> mais le vôtre est plus propre
@Massagran Merci Massagran de moi un utilisateur MacOS. Vous venez de sauver ma journée.
Vous pouvez éviter de cibler des problèmes en utilisant une fonction de shell au lieu d'un alias: ceci est également plus flexible, comme vous pouvez autoriser totalmem code> prendre des arguments , comme un nom d'utilisateur à passer à l'option
-u code> de
PS code>, comme dans cet exemple: p>
totalmem () {
ps -u "$1" -o rss,command | grep -v peruser | awk '{sum+=$1} END {print sum/1024}'
}
Unix.com/shell-programming- Script / ...
Jamais besoin
grep code> avec
awk '$ 0! ~ / Peruser / {SOM + = $ 1} end {imprimé SUM / 1024}' code>