简单的 Bash 脚本

Ric*_*ton 5 cygwin bash

我正在尝试通过 Cygwin 来掌握 Bash 脚本。我的脚本非常简单。

我将目录更改为 C 驱动器的根目录,然后打印新位置。

#!/usr/bin/bash 
cd /cygdrive/c
pwd
Run Code Online (Sandbox Code Playgroud)

保存在chdir.sh我的主目录中的文件中。然后我./chdir.sh从 bash 提示符调用。这导致错误

: No such file or directorygdrive/c
/cygdrive/c/Documents and Settings/rcotton
Run Code Online (Sandbox Code Playgroud)

我肯定有一个 C 驱动器,cd /cygdrive/c当我直接从 bash 提示符调用它时,该命令有效。

我意识到这个问题可能非常简单;请你能告诉我我做错了什么。

aki*_*ira 7

以防万一您使用不属于 Cygwin 环境的编辑器编辑脚本(例如,诸如“Notepad*”、“WordPad”等):通过“dos2unix”工具将脚本转换为 Unix 行尾.

脚本本身是绝对正确的,不需要任何 / 或 \ 更改。错误信息

: No such file or directorygdrive/c
Run Code Online (Sandbox Code Playgroud)

让我想到了自 \r\n (Windows 行结束)以来的行结束问题。以防万一您没有安装“dos2unix”:

tr -d \\r < win.txt > unix.txt
Run Code Online (Sandbox Code Playgroud)

或者

sed -e 's/$/\r/' < unix.txt > win.txt
Run Code Online (Sandbox Code Playgroud)