Ferrets家的Wordpress

shell script

脚本错误:Syntax error: end of file unexpected

2013年3月29日 by Ferrets Leave a Comment

继续上参考:http://bbs.chinaunix.net/thread-1081627-1-1.html

嘛……因为是初学者的原因,犯了个非常低级的错误呢……

根据提示,知道了问题所在了,是结构没有完成,因为是用了嵌套的case结构,所以,漏掉了一个esac,也漏掉了一个;;

case 变量名 in
值1)
case 变量名 in
值11)
指令
;;
值12)
指令
;;
esac
;;
值2)
case 变量名 in
值21)
指令
;;
值22)
指令
;;
esac
;;
esac
Posted in: Linux Tagged: case, Linux, shell script, switch

-bash: ./script.sh: /bin/sh^M: 坏的解释器: 没有那个文件或目录

2013年3月29日 by Ferrets Leave a Comment

参考:http://blog.csdn.net/wdt3385/article/details/8015730

最近在做毕设,要用到shell script,于是开始编写,嘛,由于图形界面着实方便外加我是个懒人这个因素,所以编写平台是Windows & Samba & Notepad++,所以才弄出这么个混事来……

 今天在翻看以前写的简单的shell脚本时,发现一个问题: 

    当./运行时总是提示:  (bash: ./hello.sh: bin/bash: 坏的解释器: 没有那个文件或目录),但是当用sh运行时正确.

    原来的脚本:

    (试试看你能否一眼看出错误)

    #!bin/bash

    echo "Hello Linux!"

    后来几番检查发现自己写的丢了一些东西.

    应该把红体字改成  #!/bin/bash    (!后面少了/)

    唉,很简单的问题,自己以前没有发现还有这样的错误! shell脚本的确好用,可唯一难的就是格式要求太高!

-----------------------------------------------------------------------------------------------------------------------------------------------------------

另外出现此问题的原因还有:

/bin/sh^M:损坏的解释器: 没有那个文件或目

 今天在Windows环境下用UE写了个shell脚本,然后拿到linux下运行发现如下错误:

/bin/sh^M:损坏的解释器: 没有那个文件或目录

 出现这个问题的原因如下:在Windows下,每一行的结尾是\n\r,但是在Linux下文件的结尾是\n。因此在Windows环境下编辑过的文件在Linux下打开看的时候每一行的结尾就会多出来一个字符\r。

 因此,想要在Windows环境下编辑的脚本应该保存为UNIX而不是DOS格式,很多文本编辑器都支持另存为Unix格式的功能。

 如果脚本文件保存时使用了DOS格式,我们就可以通过以下几种方法来将它转换为UNIX格式:
 用vim打开该脚本,在命令行模式下输入:setff=unix来转换.
 使用命令:sed-i ‘s/\r$//’ urfile.
 使用UE打开该脚本,然后另存为UNIX换行符的脚本.

中的第二部分,我一看,果然编码是windows的,切换过去Unix就没问题了。

真不该在windows平台上做linux的开发……

Posted in: Linux Tagged: Linux, shell script

日历

2021年3月
一二三四五六日
1234567
891011121314
15161718192021
22232425262728
293031 
« 2月    

分类目录

  • Android
  • docker
  • Linux
  • OpenWrt
  • PHP
  • RaspberryPi
  • RouterOS
  • Windows
  • 吐槽
  • 搭建服务
  • 未分类
  • 生活
  • 网络

近期文章

  • windows无法解析域名
  • 在openwrt路由上运行shairplay作为远程音箱
  • 建立私有docker镜像源
  • RouterOS上抵挡扫描的防火墙策略
  • Windows Server作为Mikrotik设备管理员的3A服务器
  • 使用ipv6连接Proxmox VE
  • 根据audit.log来放通SELinux的拦截
  • 使用PXE从NFS服务器启动Debian Linux
  • 在运行ArchlinuxARM的PogoPlug上打开CPU的AES硬件加速
  • 增大mysql/mariadb的最大连接数

友链

  • ntzyz's space
  • Openwrt中文论坛
  • SNGR
  • Trevikids行止由心
  • 煎蛋

文章归档

功能

  • 登录
  • 条目feed
  • 评论feed
  • WordPress.org

Copyright © 2021 Ferrets家的Wordpress.

Beta WordPress Theme by themehall.com