如何在bash命令中转义双引号
我有以下命令,我正试图将其附加到我的如何在bash命令中转义双引号,bash,shell,Bash,Shell,我有以下命令,我正试图将其附加到我的~/.bash\u配置文件中: echo 'alias N="cd $(pwd) && source ./bin/activate && cd new"" 我想让它返回echo: alias N="cd /Users/david/Desktop/django2 && source ./bin/activate && cd new" 跳出pwd或引号的正确方法是什么?这应该适合您: echo "
~/.bash\u配置文件中
:
echo 'alias N="cd $(pwd) && source ./bin/activate && cd new""
我想让它返回echo:
alias N="cd /Users/david/Desktop/django2 && source ./bin/activate && cd new"
跳出
pwd
或引号的正确方法是什么?这应该适合您:
echo "alias N='cd $(pwd) && source ./bin/activate && cd new'"
但是,建议您使用函数而不是别名
echo "N() { cd '$PWD' && source ./bin/activate && cd new; }"
注意:使用$PWD
代替命令PWD要在双引号字符串中回显文本“
,请使用转义字符\
:
echo "alias N=\"cd $(pwd) && source ./bin/activate && cd new\""
“我的盒子”上的输出:
alias N="cd /home/bishop/ && source ./bin/activate && cd new"
但是,您的用例向我建议了一个函数:
go() {
local where
where=${1:-${PWD}}
cd "${where}" && source ./bin/activate && cd new
}
使用here文档避免过度转义:
cat >> ~/.bash_profile << EOF
alias N="cd $(pwd) && source ./bin/activate && cd new"
EOF
cat>~/.bash\u配置文件