Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在bash命令中转义双引号_Bash_Shell - Fatal编程技术网

如何在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配置文件