【问题标题】:bad number Error KSH Script错误号码错误 KSH 脚本
【发布时间】:2013-08-05 21:25:01
【问题描述】:

我对 Unix 很陌生,这是我的第一个脚本之一。我似乎无法解决这个错误的数字错误,并在线搜索了答案。我没有太多的运气,所以我想我会转向这里。有人可以帮我吗,我不断收到这两个变量的错误数字错误。这是我的脚本,谢谢!:

#!/bin/ksh

dest=$1 

fileName=$2

id=$$

print_message()
{
   message="$1"
   echo "`date '+%m-%d-%y %T'`  $message" 

}


if [ $1 -eq "" ] ||  [ $2 -eq "" ]

        then 
        print_message "Parameters not satisfied"
        exit 1 
fi 



gpg --encrypt --recipient "$dest" "$fileName"


print_message "$id INFO: File Encrypted Successfully"

【问题讨论】:

    标签: unix ksh


    【解决方案1】:

    你的问题在这里:

    if [ $1 -eq "" ] || [ $2 -eq "" ]
    

    使用= 代替-eq,后者用于数字而不是字符串。

    您可能还需要在可能为空的参数周围加上引号,例如"$1"

    【讨论】:

    • 啊,只有一个 = 谢谢!
    • @user2640213,我很抱歉,那应该是一个 =,我已经修好了。猜猜我使用bash [[ 太久了:-)
    【解决方案2】:

    这是因为您的用户 -eq 用于数值。您需要将= 用于字符串。您的代码应如下所示:

    #!/bin/ksh
    
    dest=$1 
    
    fileName=$2
    
    id=$$
    
    print_message()
    {
       message="$1"
       echo "`date '+%m-%d-%y %T'`  $message" 
    
    }
    
    
    if [ $1 = "" ] ||  [ $2 = "" ]
    
        then 
        print_message "Parameters not satisfied"
        exit 1 
    fi 
    
    
    
    gpg --encrypt --recipient "$dest" "$fileName"
    
    
    print_message "$id INFO: File Encrypted Successfully"
    

    容易犯错误:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-29
      • 2012-10-09
      • 1970-01-01
      相关资源
      最近更新 更多