Outras respostas foram dadas, que funcionarão, mas com o espírito de ajudar você a fazer exatamente do jeito que você estava tentando (já que é uma maneira totalmente boa de fazê-lo):
Aqui está o original:
printf "function ps_mem {\n python /home/vagrant/ps_mem/ps_mem.py -p $@ \n}" >> ~/.bashrc
Aqui está uma versão que funciona:
printf 'function ps_mem {\n python /home/vagrant/ps_mem/ps_mem.py -p $@ \n}' >> ~/.bashrc
Eu recomendo adicionar aspas duplas em torno de $@
também:
printf 'function ps_mem {\n python /home/vagrant/ps_mem/ps_mem.py -p "$@" \n}' >> ~/.bashrc
Expansão variável é ativada entre aspas duplas; desativado entre aspas simples.