好多个有if fi 程序执行 sh 命令的时候都报错
如在WIKI上copy 的代码
#!/bin/sh
#
if [ ${SHELL} = "/bin/bash" ]; then
echo "your login shell is the bash (bourne again shell)"
else
echo "your login shell is not bash but ${SHELL}"
fi
执行 sh sh03.sh 的时候显示的错误是 sh03.sh: line 8: 语法错误:不可预料的文件末尾
执行 chmod +x sh03.sh ./sh03.sh 的时候显示的错误是
bash: ./sh03.sh:/bin/sh^M:损坏的解释器: 没有该文件或目录
网上说是 /bin/sh 有回车什么的 。但是我是在UBUNTU下编辑的 而且查过多遍 没有多的回车什么,但只是手工删除下末尾
第一个执行SH的时候 我也是多次查过 ,鸟哥私房菜上的有if fi 的代码也试过 都不行
而且我执行的时候空格是报错的, 这个我没有找到是什么原因。
不知道怎么解决 执行错误。请高手帮忙解答 谢谢
初学脚本语言 简单的IF 语句都出错
-
- 帖子: 3
- 注册时间: 2006-07-27 21:23
- princelai
- 帖子: 920
- 注册时间: 2007-01-06 21:00
- 联系:
Re: 初学脚本语言 简单的IF 语句都出错
没用过bash变成,不过试试改shabang,换成#!/bin/env dash or #!/bin/env bash or #!/bin/env zsh之类的,其他我也不知道了
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
Re: 初学脚本语言 简单的IF 语句都出错
sed 's/^M//g'
那个 ^M 是先 Ctrl-V 然后 Ctrl-M
那个 ^M 是先 Ctrl-V 然后 Ctrl-M
^_^ ~~~
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
- tonychen123
- 帖子: 101
- 注册时间: 2009-04-03 20:52
- 来自: Guangzhou -China
Re: 初学脚本语言 简单的IF 语句都出错
代码: 全选
#!/bin/sh
#
if [ "${SHELL}" = "/bin/bash" ]; then
echo "your login shell is the bash (bourne again shell)"
else
echo "your login shell is not bash but ${SHELL}"
fi
There should be one-- and preferably only one --obvious way to do it.
-
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
Re: 初学脚本语言 简单的IF 语句都出错
3 楼所说的可能性非常大
-
- 帖子: 3
- 注册时间: 2006-07-27 21:23
Re: 初学脚本语言 简单的IF 语句都出错
自己的编辑的也会出现这个问题 是vim设置显示的问题
在VIM 输入 :set ff=unix 就解决这个问题 。
.sh03.sh 就可以运行了
在VIM 输入 :set ff=unix 就解决这个问题 。
.sh03.sh 就可以运行了