我有以下命令,我试图将其附加到我的~/.bash_profile
上:
echo 'alias N="cd $(pwd) && source ./bin/activate && cd new""
我希望它返回回声:
alias N="cd /Users/david/Desktop/django2 && source ./bin/activate && cd new"
转义pwd
或引号的正确方法是什么?
答案 0 :(得分:3)
这应该对您有用:
echo "alias N='cd $(pwd) && source ./bin/activate && cd new'"
但是,建议您使用函数代替alias
。
echo "N() { cd '$PWD' && source ./bin/activate && cd new; }"
请注意使用$PWD
代替命令pwd
答案 1 :(得分:2)
要在双引号字符串内回显文字"
,请使用转义字符\
:
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
}
答案 2 :(得分:1)
避免在此处文档中过度转义:
cat >> ~/.bash_profile << EOF
alias N="cd $(pwd) && source ./bin/activate && cd new"
EOF