当前位置:  技术问答>linux和unix

今天运行鸟叔书上shell script代码时遇的问题

    来源: 互联网  发布时间:2017-05-15

    本文导语:  我把代码完整放上,主要是第20行和22行,我想问下:$只后,为什么有时候加两对括号有时候只加一对? #!/bin/bash # Program: #    You input your demobilization date, I calculate how many days #    before you demobilize. # Histo...

我把代码完整放上,主要是第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_dem=$(date --date="$date2" +%s)
这个是单纯的命令替换,是把date命令执行的结果赋值给变量date_dem

declare -i date_total_s=$(($date_dem-$date_now))
这个是要进行算术运算,把变量date_dem和date_now相减的结果赋值给变量date_total_s

|
A=($date_dem-$date_now)
这是变量A的定义
$A这是取值
$($date_dem-$date_now) ——这个就不对了

|
declare -i date_total_s=$(($date_dem-$date_now))
A=($date_dem-$date_now)
$(A)//书写规范吧

    
 
 

您可能感兴趣的文章:

  • 用Jbuilder3 遇到问题不能运行把可疑代码注掉后可以运行但是重新使用可疑代码时又可以运行了多次重复都是如此
  • 请问在java多线程中,是只有run(){}内的代码运行在一个新线程下呢?还是这个类中的代码都运行在一个新线程下?
  • jbuilder4.0 企业版能否把代码编译成在特定平台上运行的代码
  • 嵌入式linux开发:一段代码在windows平台用VC编译运行正常,在linux平台用gcc编译运行正常,但是用arm-linux-gcc编译在嵌入式板子上运行就不正常.
  • 请问谁运行过《Java XML 编程指南》中的代码?
  • 在线等,为什么我的代码原来可以运行,现在不可以了????TextPad
  • Java 代码运行洞察库 Metrics
  • 求调用ie代码,运行成功即给分,在线等待!
  • 请教:Linux下编译c代码,运行程序时出现undefined symbol exp
  • 怎样用代码设置frame,让它运行开始就最大化显示。
  • java运行windows的cmd命令简单代码
  • shell脚本运行5秒后自动退出的代码
  • 求驱动程序源代码(能在RedHat7.2, Kernel2.4下编译,装载运行)每个100分
  • 刚下载一个内核源代码,怎样将它编译出来,然后安装运行呢?
  • 请问如何用EMACS编译调试运行C代码?
  • 大家好!我最近一个浏览器的原代码不知道怎么编译运行。。请帮帮忙?
  • 如何用c shell实现让一个a.exe在后台运行,请给出shell代码
  • 各位师兄师姐再帮忙看看为什么下面的代码运行时出错?
  • 怎么写shell代码 写好shell怎么运行?
  • 在unix下写一个每日批处理的程序,如何实现每日某个时间触发我要运行的代码?
  • 如何运行扩展名是BIN的shell script?
  • 在Linux Shell scripts下变量如何取linux的命令运行值
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • SecureCRT上运行一个JAVA程序,该程序类似一个在WINDOWS下一直运行的CMD窗口的东西,SecureCRT关掉后,JAVA还会继续运行吗?
  • 在docker容器中运行hello world!
  • 如何运行外部命令后不等外部命令运行结束直接运行下一条命令
  • 通过docker ps命令检查运行中的docker镜像
  • “模块”在内核中运行与作为单独进程运行在机制上有什么区别与联系?
  • 通过docker run命令运行新的docker镜像
  • telnet到主机去运行一个我编的程序,退出telnet时那个程序也不运行了,这是怎么回事?按程序逻辑它应该一直运行下去的。
  • 安装运行微软win7/Windows7系统要求及官方下载地址
  • 请问:进程创建的线程是怎样运行的啊,线程的处理函数运行完了,线程就退出了吗?
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • tomcat下servlet无法运行,但是jsp可以运行,在线等待。。。
  • Ubuntu程序开机自动启动设置(服务和自动运行配置文件)的几种方法
  • 请教为什么要运行一个可执行文件要以./文件名 的形式来运行?
  • ​Windows Server 2016提供Docker原生运行的企业级支持
  • 请问怎么改配置文件啊?能运行startx启动XWindow,运行X就不行呢?
  • windows下cmd命令提示符下让程序后台运行命令
  • 问一个crontab中不能运行手动可以运行的问题
  • 中断恢复现场时怎样判断进程运行到那一步,如何无缝连续运行的呢?
  • 关于shell脚本手动运行和自动运行的区别
  • 怎样让linux启动后不运行桌面而是直接运行某个应用程序呢?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,