语法shell脚本? “getopts中出乎意料的一句话

时间:2013-01-15 16:30:55

标签: shell getopts ubuntu-8.04

大家晚上好,我们期待在Ubuntu 8.04上执行shell脚本,但它返回一个特殊错误:

line 14: Word unexpected (expecting "in")

所以这是脚本的预览:

#!/bin/sh
#Declaration of shell parameters
A3REP=""
A3FILE=""
A3HELP=""
A3PORT="80"
A3PORTTC="80"
A3IP400=""
A3USER=""
A3PWD=""
A3TASK=""
while getopts d:f:h:p:i:u:w:t:n: option
do 
  case $option in
    d)
    A3REP="$OPTARG"
    ;;
    f)  
    A3FILE="$OPTARG"
        ;;
    p)  
    A3PORT="$OPTARG"
        ;;
    t)  
    A3PORTTC="$OPTARG"
        ;;
    i)  
    A3IP400="$OPTARG"
        ;;
    u)  
    A3USER="$OPTARG"
        ;;
    w)  
    A3PWD="$OPTARG"
        ;;
    n)  
    A3TASK="$OPTARG"
        ;;
    h)
    A3HELP="aide"
    ;;
  esac
done

问题已解决: 脚本在dos中:

在d2u.sh中插入以下行:

#!/bin/bash
cat $1|tr -d '\015'

现在执行:

chmod +x d2u.sh

现在脚本已准备好运行。

尝试使用此脚本输入以下命令:

sh d2u.sh filename.sh > filename2.sh

并且脚本不再出现在dos中。

谢谢大家! :)

1 个答案:

答案 0 :(得分:1)

也许是行结尾的问题,请尝试

d2u FILE

ref