如何在bash命令中转义双引号

3

我有以下命令,我正在尝试将其附加到我的~/.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 或引号?
3个回答

3
这对您应该有帮助:

这对您应该有帮助:

echo "alias N='cd $(pwd) && source ./bin/activate && cd new'"

然而,我们建议您使用函数而不是alias

echo "N() { cd '$PWD' && source ./bin/activate && cd new; }"

请注意使用$PWD而不是命令pwd


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
}

1
避免在此处文档中过度转义:
cat >> ~/.bash_profile << EOF
alias N="cd $(pwd) && source ./bin/activate && cd new"
EOF

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接