分页: 1 / 1

[求助]写了个配置l2tp的shell脚本,总出错

发表于 : 2008-12-24 13:39
Joshua_Zhan
脚本如下

代码: 全选

#!/bin/sh

case $1 in

	route)

		GATEWAY=210.29.241.1

		{

			route del default

			route add -net 172.16.0.0 netmask 255.240.0.0 gw $GATEWAY

			route add -net 202.119.32.0 netmask 255.255.224.0 gw $GATEWAY

			route add -net 210.29.240.0 netmask 255.255.240.0 gw $GATEWAY

			route add -net 210.28.128.0 netmask 255.255.240.0 gw $GATEWAY

			route add -net 219.219.112.0 netmask 255.255.240.0 gw $GATEWAY

			route add -net 0.0.0.0 netmask 0.0.0.0 dev ppp0

		} &> /dev/null

#		modprobe ip_nat_ftp

	;;

	start)

		echo "" > /var/run/xl2tpd/l2tp-control

		xl2tpd

		sleep 5

		echo "c nju" > /var/run/xl2tpd/l2tp-control

	;;

	stop)

		echo "d nju" > /var/run/xl2tpd/l2tp-control

	;;

	*)

		echo "Please specify your action: route | start | stop"

	;;

esac
确定已经赋予运行权限
-rwxr-xr-x 1 joshua joshua 767 2008-12-24 13:26 bras
-rwxr-xr-x 1 joshua joshua 34 2008-12-24 13:26 test

但总提示
joshua@joshua-laptop:~$ sudo ./bras start
[sudo] password for joshua:
sudo: unable to execute ./bras: No such file or directory

joshua@joshua-laptop:~$ ./bras start
bash: ./bras:/bin/sh^M:损坏的解释器: 没有该文件或目录

同一目录下的test却可以执行

代码: 全选

#!/bin/sh
s="hello world"
echo $s
所以不是shell的问题,同时我也确信连接脚本中的相关软件已经安装

有人能指教一下为什么吗

Re: [求助]写了个配置l2tp的shell脚本,总出错

发表于 : 2008-12-24 13:56
bones7456
bash: ./bras:/bin/sh^M:损坏的解释器: 没有该文件或目录

脚本第一行的后面有不可见字符。

Re: [求助]写了个配置l2tp的shell脚本,总出错

发表于 : 2008-12-24 14:00
figor
vim第一个脚本,看看末尾有没有”^M“,如果有,把整个文件的”^M“ 干掉就OK了
我以前碰到这个问题,就是文件从Win下写的,传到Linux下就多出这个回车符。
试试看先

Re: [求助]写了个配置l2tp的shell脚本,总出错

发表于 : 2008-12-24 21:46
Joshua_Zhan
感谢楼上两位,问题确实是多了些不可见的字符,初学shell很容易就忽视这些细节的地方