函数参数和比较条件有什么问题?

时间:2016-03-30 13:50:32

标签: bash function operators

我想弄清楚如何让这个工作.. 我对Bin Bash不太熟悉, 但我有这个脚本:

variables.cfg包含:

pvp =“0400 1200 2000”

#!/bin/sh

CONFIG_FILE="/home/nacion/variables.cfg"
source $CONFIG_FILE

#Arreglar tiempo
ATM (){
  if [ $((1+2)) -gt 24 ];
    then
      $a=$1 + $2
      $b=$a-2400
      echo $b
  fi
}

declare -a VcHorarios=($pvp)

for HoraAR in "${VcHorarios[@]}" 
do 

我不知道为什么没有通过参数

  ES=$(ATM $HoraAR 500)
  HorarioSv="&b&lMX $((HoraAR-300)) - AR $HoraAR H - ES $ES H"
done

echo $HorarioSv

结果:

[root@anda ~]# /home/nacion/vcprueba.sh 
&b&lMX 1700 - AR 2000 H - ES H
[root@ns500347 ~]# 

提前感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您可以从$内的变量名称中删除$((...))$1$2不是变量;它们是位置参数。

if [ $(($1 + $2)) -gt 24 ];

一旦设法输入if语句的正文,正确的命令就是

a=$(( $1 + $2 ))
b=$(( a - 2400 ))  # or $(( $a - 2400 )), if you prefer