Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.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_Cygwin - Fatal编程技术网

如何将此路径传递给bash函数?

如何将此路径传递给bash函数?,bash,cygwin,Bash,Cygwin,我一直很难移动到名称中有空格的目录,但我只是觉得这是Cygwin的问题,并解决了它 然后我发现我可以创建指向这些目录的符号链接,这让我觉得它不是Cygwin。然后我想起我为cd创建了一个别名,该别名将列出目录内容,并看到以下内容: cdls { cd $1; ls; } alias cd='cdls' 所以问题是,当我尝试这个方法时,它失败了: $ cd /cygdrive/c/Program\ Files/ bash: cd: /cygdrive/c/Program: No such fil

我一直很难移动到名称中有空格的目录,但我只是觉得这是Cygwin的问题,并解决了它

然后我发现我可以创建指向这些目录的符号链接,这让我觉得它不是Cygwin。然后我想起我为
cd
创建了一个别名,该别名将列出目录内容,并看到以下内容:

cdls { cd $1; ls; }
alias cd='cdls'
所以问题是,当我尝试这个方法时,它失败了:

$ cd /cygdrive/c/Program\ Files/
bash: cd: /cygdrive/c/Program: No such file or directory
我可以看到空格导致路径被拆分为多个参数,但如何将它们再次连接在一起?

引用它:

cdls { cd "$1"; ls; }
bash中的引用可能会有问题,因为有多个层次的解释,但通常只是玩一下而已。

引用它:

cdls { cd "$1"; ls; }
bash中的引用可能会有问题,因为有多个层次的解释,但通常只是玩一下而已。

试试:

cdls() { cd "$1"; ls; }
尝试:


看来我只是需要解释一下问题的答案。我的解决办法是:

cdls () { cd "$*"; ls ; }
alias cd='cdls'

很简单。

看起来我只是需要解释一下问题,然后才能找到答案。我的解决办法是:

cdls () { cd "$*"; ls ; }
alias cd='cdls'

简单。

+1:始终引用所有shell脚本中的所有路径。总是,是的。它们可能对解析器是可选的,但对我来说不是+1:始终引用所有shell脚本中的所有路径。总是,是的。它们可能对解析器是可选的,但对我来说不是!我不会在这个别名中使用$*;如果路径中有多个空格,则会导致问题。另外,在使用$*时,您通常希望使用“$@”,因为它更健壮;如果路径中有多个空格,则会导致问题。另外,在使用$*时,您通常希望使用“$@”,因为它更健壮。