Cygwin - bash 脚本中的 cd

Dan*_*Dan 12 cygwin bash

我是使用 Cygwin 的新手,如果这是一个非常新手的问题,我深表歉意。

我有一个 bash 脚本,我在其中“cd”到一个目录,然后在该目录中执行某些操作。但是,cd 命令失败并显示“没有这样的文件或目录 /c/code/blah/blah”。

如果我将 cd 行直接复制到 shell 提示符中,则它可以正常工作。它只是在脚本中失败。

[编辑] 根据要求,我添加了脚本中的实际行:

#!/bin/bash
cd /c/Code/Project
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助,
丹。

gar*_*ohn 18

你的脚本有什么样的行尾?要使 Cygwin bash 脚本正常工作(无需设置特殊选项),它必须具有 Unix 行结尾 (LF) 而不是 DOS 行结尾 (CR-LF)。如果您使用 DOS 行结尾保存脚本,bash 将看到您的参数cdas /c/Code/Project^M,其中^M是 CR,并且不会找到该名称的目录。

要查看它的行尾类型,您可以执行file scriptname,其中scriptname是脚本的名称。要转换脚本以使其具有 Unix 行结尾,请执行d2u scriptname.

不要使用记事本编辑 Cygwin bash 脚本。它总是以 DOS 行结尾保存文件。