acrescentar texto ao arquivo incluindo várias citações

1

Eu quero fazer isso:

echo alias get_python_lib='python -c "from distutils.sysconfig import get_python_lib; print get_python_lib();"' >> ~/.bash_aliases

O resultado no meu arquivo ~/.bash_aliases é:

alias get_python_lib=python -c "from distutils.sysconfig import get_python_lib; print get_python_lib();"

Infelizmente, o comando echo removeu o primeiro conjunto de apóstrofos ( ') e o alias não funciona.

Eu tentei todos os tipos de apóstrofos e citações de swaps e usei todos os comandos que consegui encontrar como substituto ( echo , type , cat , printf ), mas nada funcionou.

Como eu adiciono uma linha de texto a um arquivo quando a linha de texto requer todos os seus apóstrofos e citações?

    
por Joseph Hansen 12.10.2011 / 01:01

2 respostas

1

Escapando os trabalhos de cotação e adicionando trabalhos de citações de wrapper:

echo alias get_python_lib=\'python -c "\"from distutils.sysconfig import get_python_lib; print get_python_lib();\""\' >> ~/.bash_aliases

$ cat .bash_aliases
alias get_python_lib='python -c "from distutils.sysconfig import get_python_lib; print get_python_lib();"'
    
por 12.10.2011 / 01:23
1

Ou use aspas duplas em torno de todos os argumentos para echo e escape das aspas duplas internas

echo "alias get_python_lib='python -c \"from distutils.sysconfig import get_python_lib; print get_python_lib();\"'" >> ~/.bash_aliases
    
por 12.10.2011 / 04:14