将文本附加到文件,包括多个引文

将文本附加到文件,包括多个引文

我想做这个:

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

我的文件中的结果~/.bash_aliases是:

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

不幸的是,该echo命令去掉了第一组撇号('),因此别名不起作用。

我尝试了各种撇号和引号交换方式,并使用了我能找到的所有替代命令(,,,echo),但没有任何效果。typecatprintf

当文本行需要所有撇号和引号时,如何将一行文本附加到文件中?

答案1

转义引号有效,并且添加包装引号也有效:

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();"'

答案2

或者将所有参数括在双引号中,echo并转义内部双引号

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

相关内容