0

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

是什么赋予了?

4

1 回答 1

3

您收到的错误来自 Windows 命令行解释器。它被调用是因为您的脚本具有.bat扩展名。应该www.sh改为调用它。

但是,你不能用脚本做你想做的事:会产生一个新进程来运行你的脚本,新进程会 cd 到你的目录,但在脚本结束时,进程会结束,你会被返回到调用shell的进程,该进程将具有旧的当前目录。您需要从 bash ( . /path/to/www.sh) 获取脚本,以便它可以在与调用 shell 相同的进程中运行,但这对于您想要的来说太过分了。只需将其添加到您.bashrc的主目录 ( /home/<user>/.bashrc) 中:

alias www='cd /cygdrive/c/xampp/htdocs/www'
于 2013-06-25T14:58:45.470 回答