我正在制作一系列bash脚本,以便通过手动输入导航命令进入我的cygwin终端来消除麻烦。他是导航到我的xampp / www /目录的人:
#!/bin/bash
cd /cygdrive/c/xampp/htdocs/www
当我使用以下命令运行它时:
$ ./www.bat
我收到以下错误:
C:\Users\user>cd /cygdrive/c/xampp/htdocs/www
The system cannot find the path specified.
奇怪的是,当我手动输入该命令时,它会毫无问题地导航到目标目录。我的第一个想法是Cygwin的磁盘驱动器命名问题,但如果这是一个问题,它将在手动输入时失败。
是什么给出了?
答案 0 :(得分:3)
您获得的错误来自Windows命令行解释器。它被调用,因为您的脚本具有.bat
扩展名。它应该被称为www.sh
。
但是,你不能用脚本做你想做的事:产生一个新进程来运行你的脚本,新进程将cd到你的目录,但在脚本结束时,进程将结束,你' d将返回到调用shell的进程,该进程具有旧的当前目录。您需要从bash(. /path/to/www.sh
)中获取脚本,以便它可以在与调用shell相同的进程中运行,但这对于您想要的内容来说是过度的。只需将其添加到主目录中的.bashrc
(/home/<user>/.bashrc
):
alias www='cd /cygdrive/c/xampp/htdocs/www'