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

sh/bash/dash/ksh/zsh等Shell脚本
回复
Joshua_Zhan
帖子: 155
注册时间: 2008-01-04 20:57
送出感谢: 0
接收感谢: 0
联系:

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

#1

帖子 Joshua_Zhan » 2008-12-24 13:39

脚本如下

代码: 全选

#!/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的问题,同时我也确信连接脚本中的相关软件已经安装

有人能指教一下为什么吗
头像
bones7456
论坛版主
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
送出感谢: 0
接收感谢: 8 次
联系:

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

#2

帖子 bones7456 » 2008-12-24 13:56

bash: ./bras:/bin/sh^M:损坏的解释器: 没有该文件或目录

脚本第一行的后面有不可见字符。
关注我的blog: ε==3
figor
帖子: 2
注册时间: 2008-12-24 13:29
送出感谢: 0
接收感谢: 0

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

#3

帖子 figor » 2008-12-24 14:00

vim第一个脚本,看看末尾有没有”^M“,如果有,把整个文件的”^M“ 干掉就OK了
我以前碰到这个问题,就是文件从Win下写的,传到Linux下就多出这个回车符。
试试看先
Joshua_Zhan
帖子: 155
注册时间: 2008-01-04 20:57
送出感谢: 0
接收感谢: 0
联系:

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

#4

帖子 Joshua_Zhan » 2008-12-24 21:46

感谢楼上两位,问题确实是多了些不可见的字符,初学shell很容易就忽视这些细节的地方
回复

回到 “Shell脚本”