|  
 
 
主要是第20行和22行,我想问下:$只后,为什么有时候加两对括号有时候只加一对?  #!/bin/bash # Program: #    You input your demobilization date, I calculate how many days #    before you demobilize. # History: # 2014/04/13 vampire First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH   echo "This program will try to calculate :" echo "How many days before your demobilization date..." read -p "Please input your demobilization date (YYYYMMDD ex>20140413) :" date2   date_d=$(echo $date2 | grep '[0-9]\{8\}') if [ "$date_d" == "" ]; then     echo "You input the wrong date format...."     exit 1 fi   declare -i date_dem=$(date --date="$date2" +%s) declare -i date_now=$(date +%s) declare -i date_total_s=$(($date_dem-$date_now))  declare -i date_d=$(($date_total_s/60/60/24)) if [ "$date_total_s" -lt "0" ]; then     echo "You had been demobilization before: "$((-1*$date_d)) "ago" else     declare -i date_h=$(($(($date_total_s-$date_d*60*60*24))/60/60))     echo "You will demobilize after $date_d days and $date_h hours." fi  declare -i date_total_s=$(($date_dem-$date_now)) A=($date_dem-$date_now) $(A)//书写规范吧 多熟悉语法就好了 
declare -i date_dem=$(date --date="$date2" +%s) 这个是单纯的命令替换,是把date命令执行的结果赋值给变量date_dem 
declare -i date_total_s=$(($date_dem-$date_now)) 这个是要进行算术运算,把变量date_dem和date_now相减的结果赋值给变量date_total_s  
 |