shell脚本报错
发布日期:2021-07-17 15:49:27 浏览次数:6 分类:技术文章

本文共 826 字,大约阅读时间需要 2 分钟。

报错——syntax error near unexpected token

1. 这是因为在Windows中的回车符在Linux中被表示为了 ^M ,使用二进制模式打开脚本:

  • vim -b monitor.sh

我们会发现在每行的末尾都会有一个 ^M,如果消灭 ^M 呢?我们想到了几种方法,其一就是使用 sed 命令:

  • sed -i 's/^M//' monitor.sh
这里的^M是由 ctrl+v 和 ctrl+m 生成ctrl+v 组合键使下一个特殊字符可以插入在当前位置, 如先按 ctrl+v 再按ctrl+s 可以在当前位置插入一个 ^S 字符。

2. 另一个去除 ^M 的方法就是使用vim中的替换功能:

  • vim -b monitor.sh    以二进制模式打开脚本
  • :%s/^M//g             去除^M
  • shift+z+z                 保存退出
shift+z+z是vim的保存退出命令,以上命令请手敲,任何有替换功能的命令都可以完成以上操作。

3. 当然会产生这种错误的原因是因为该脚本是在Windows下编写的,所以该脚本就是dos格式的,所以我们将脚本格式转换为unix格式也就ok了。

  • :set ff=unix
用vim打开脚本后输入以上命令,就可以达到转换格式的目的。

报错——bad interpreter: 没有那个文件或目录

当出现这个报错时,原因是与上一个报错类似的,所以我们只需要:

  • vim monitor.sh
  • :set ff=unix

在虚拟机中找不到共享文件的位置

在使用VMware时我们已经安装了VMware tools,已经打开了“共享文件夹”功能,也已经添加了路径:

这时我们将文档放入主机的共享文件夹中,但是虚拟机中怎么使用呢?首先我们要先了解一下linux中的mnt目录,这个目录被称为挂载目录,当挂载设备后,这个目录中就会出现相应的目录。

  • /mnt/hgfs
当打开上面的目录时,我们就会发现共享文件夹就在其中。

转载地址:https://blog.csdn.net/huzhiyuan0000000/article/details/74905962 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:最大子序列和问题
下一篇:shell编程(三)--Linux系统监控脚本

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年03月28日 15时58分48秒