读书人

100分sh文件为什么不能执行?该如何

发布时间: 2012-02-19 19:43:39 作者: rapoo

100分,sh文件为什么不能执行?
test.sh文件只有这一句话

if [ -f load.sh ]; then
echo "Cannot find "
fi

说fi附近语法错误


[解决办法]
我帮你试了一下,没错啊

要去你改成
if [ -f load.sh ]
then
echo "Cannot find "
fi
看看

[解决办法]
有加 #!/bin/sh 么
[解决办法]
试过了,没问题!不过脚本没意义:
这不是想这样啊?
if [ -f load.sh ]; then
echo "find, run load.sh "
else
echo "Cannot find "
fi

[解决办法]
权限问题
[解决办法]
楼主这段代码是windows下的

vi 文件
将每行后的^M符合删除
[解决办法]
在每个脚本的开头都使用 "#! ",这意味着告诉你的系统这个文件的执行需要指定一个解
释器.#!实际上是一个2 字节[1]的魔法数字,这是指定一个文件类型的特殊标记, 换句话说, 在
这种情况下,指的就是一个可执行的脚本(键入man magic 来获得关于这个迷人话题的更多详细
信息).在#!之后接着是一个路径名.这个路径名指定了一个解释脚本中命令的程序,这个程序可
以是shell,程序语言或者是任意一个通用程序.这个指定的程序从头开始解释并且执行脚本中
的命令(从#!行下边的一行开始),忽略注释.[2]
如:
1 #!/bin/sh
2 #!/bin/bash
3 #!/usr/bin/perl
4 #!/usr/bin/tcl
5 #!/bin/sed -f
6 #!/usr/awk -fh

然后将文件加上可执行的权限。
输入./test.sh 执行
[解决办法]
检查一下每行结束的换行符是不是Windows的换行格式。。
最好直接用VI编写
[解决办法]
用ue转换一下格式就好了。
[解决办法]
看你的shell文件有没有被认识到。 老牛 写了很多头文件。
写个更简单的echo ...


[解决办法]
格式问题吧

读书人网 >UNIXLINUX

热点推荐