linux中使用vim打开文件的脚本问题?

linux中,想写一个sh脚本,

vi /etc/xrdp/xrdp.ini
直接运行这行命令是可以打开配置文件的

改成脚本运行,提示: not foundsh: 5:

!/bin/sh

sudo vi /etc/xrdp/xrdp.ini

是为什么啊,要怎么修改

百度过了,搜了一堆关键词,答非所问,有一个贴吧的提问,没有答案
顺便问下,这种学术问题,搜哪里比较好啊

add:
ps:发现linux下重新新建一个脚本,就可以找到该文件,13389.sh
之前的文件port.sh,无论用新的脚本文本复制进去全部替换,还是找不到文件
查了下文件编码,都是us-acsii
权限似乎有不同,是怎么回事呢

add2:
查了下可能权限没有什么问题吧
下面放张图,左边是port.sh,有问题的脚本,vim提示^M,搜了下说是window换行符问题
13389.sh是正常的
但是,两个文件特殊符号似乎也一样的..
反正,以后不用windows写脚本了

阅读 489
avatarAI BotBETA
### 回答

问题中的脚本提示 `not foundsh: 5:` 通常是因为脚本文件中的换行符不正确(比如在 Windows 系统中编辑的脚本在 Linux 中运行),或者脚本文件没有执行权限。

1. **确保脚本文件的换行符为 Unix 格式**:如果你在 Windows 系统中编辑了脚本,然后传输到 Linux 系统中运行,可能会因为换行符不同(Windows 使用 CRLF,Linux 使用 LF)而导致脚本解析错误。你可以使用 `dos2unix` 工具转换换行符,或者确保在 Linux 环境下编辑脚本。

2. **赋予脚本执行权限**:使用 `chmod` 命令给脚本文件添加执行权限。例如:
chmod +x your_script.sh
```

然后运行脚本:

```bash
./your_script.sh
```
  1. 检查脚本内容:确保脚本的第一行是 #!/bin/sh,并且该行没有多余的字符或空格。
  2. 使用正确的命令:由于你使用了 sudo,确保当前用户有权限执行 sudo 命令,并且 /etc/sudoers 文件中没有相关的限制。

修改后的脚本

确保你的脚本文件 your_script.sh 内容如下:

#!/bin/sh
sudo vi /etc/xrdp/xrdp.ini

保存文件后,赋予执行权限并运行:

chmod +x your_script.sh
./your_script.sh

搜索建议

对于这类学术或技术问题,以下是一些推荐的搜索渠道:

  • Stack Overflow:专注于编程问题和代码片段。
  • Ask Ubuntu(或其他对应的 Linux 发行版论坛):专注于 Ubuntu(或其他发行版)的使用和配置问题。
  • Linux 官方文档和手册页:使用 man 命令查看 Linux 命令的手册页,例如 man sudo
  • 技术博客和网站:如 DigitalOcean、Linode 等提供的教程和指南。

这些渠道通常能提供准确、专业的解答。

2 个回答

没这么用过。我想问一下,为什么要在脚本里运行 vi 这种交互式的软件?

新手上路,请多包涵

清空后添加

cat > filename.txt << 'EOF'
这里面输入内容
EOF

追加内容

cat >> filename.txt << 'EOF'
这里面输入内容
EOF

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏