非常简单的bash脚本无法正常工作

时间:2013-06-25 14:55:34

标签: bash cygwin

我正在制作一系列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的磁盘驱动器命名问题,但如果这是一个问题,它将在手动输入时失败。

是什么给出了?

1 个答案:

答案 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'