You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 10 Ubuntu子系统Shell脚本执行失败问题求助

解决Windows 10 Ubuntu Bash中Shell脚本重定向报错问题

看你遇到的错误提示Directory nonexistentssion.sh: cannot create output.txt,这里的nonexistentssion.sh明显是把脚本名submission.sh拆错了,大概率是脚本的换行符格式不兼容导致的——毕竟你是在Windows环境编辑的脚本,默认用的是CRLF(回车+换行),而Ubuntu Bash里的Shell只认LF(换行),多余的\r字符会把命令解析得乱七八糟。

下面是具体的解决步骤:

1. 检查脚本的换行符问题

先在Ubuntu Bash里用命令查看脚本里的隐藏字符:

cat -A submission.sh

如果看到每行末尾有^M,那就是确凿的Windows换行符问题了。

2. 转换脚本到Linux兼容格式

最简单的方法是用dos2unix工具转换:

# 如果没装dos2unix,先安装
sudo apt install dos2unix
# 转换脚本格式
dos2unix submission.sh

要是不想装工具,也可以用sed命令手动去掉\r:

sed -i 's/\r$//' submission.sh

3. 确认脚本内容的正确性

确保你的脚本内容是干净的,没有多余字符,正确的写法应该是这样:

# file name: submission.sh
echo "Hello world" > output.txt

注释行和命令行要分开,每行单独占一行,不要有奇怪的空格或隐藏字符。

4. 额外验证:当前目录的写权限

虽然你去掉重定向能正常执行,说明当前目录大概率有写权限,但还是可以确认一下:

ls -ld .

如果输出里的权限字段(比如drwxr-xr-x)包含w(第三个位置),说明你有写权限;如果没有,用下面的命令给自己加权限:

chmod u+w .

转换完格式后再执行sh submission.sh,应该就能正常生成output.txt了。

内容的提问来源于stack exchange,提问作者Firman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:29:18