Fem*_*fer 12 command-line bash scripts windows-subsystem-for-linux
我在我的 Windows 机器上安装了Ubuntu bash,所以我可以在工作之外测试 linux 脚本。我创建了一个非常简单的脚本,其中包含基本的“hello world”和一个更改目录 (cd),但是在执行时会显示 hello world。它在 cd 到目录行上出错。
这是错误:
$ ./test.sh
hello world
zipping away
./test.sh: line 6: cd: $'/home/fjaffer/temp\r\r': No such file or directory
./test.sh: line 7: $'\r': command not found
ffr@DP-PC:~$
Run Code Online (Sandbox Code Playgroud)
我的脚本test.sh如下:
#!/bin/bash
echo "hello world"
echo "zipping away"
dir=/home/fjaffer/temp
cd $dir
Run Code Online (Sandbox Code Playgroud)
请指教?谢谢你。
Rav*_*ina 17
这是因为您在 Windows 机器上创建了脚本,因此在\r每行末尾添加了一些(回车)。
像这样删除它们:
tr -d '\r' < test.sh > new-test.sh
Run Code Online (Sandbox Code Playgroud)
还要引用变量的值:
cd "$dir"
Run Code Online (Sandbox Code Playgroud)
然后运行你的脚本:
./new-test.sh
Run Code Online (Sandbox Code Playgroud)
作为提示,最好使用:
cd ... || exit
Run Code Online (Sandbox Code Playgroud)
万一出现故障。
配置您的编辑器,使其使用 Linux 格式来保存文件(如果可以)或在 bash 中使用编辑器,例如nano:
αғs*_*нιη 11
另一种选择是使用dos2unix命令将文件转换为 Unix 类型格式。
用法:
dos2unix your_file
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7081 次 |
| 最近记录: |