设为首页 收藏本站
查看: 1581|回复: 0

第 三 十 一 天:shell 脚 本(二)

[复制链接]

尚未签到

发表于 2018-8-29 06:10:41 | 显示全部楼层 |阅读模式
  小Q:我不能说我不珍重这些荣誉,并且我承认它很有价值,不过我却从来不曾
  为追求这些荣誉而工作。                 —— 法拉第
  一:date命令
  二:shell字符串
  三:shell的三种引号
  四:shell注释
  一:date命令
  date命令可以按照指定格式显示日期,只键入date则以默认格式显示当前时间
DSC0000.jpg

  指定的格式显示日期,可以使用“+”连接以下字符:
  #常用选项
  %T : 直接显示时间 (24 小时制)
  %H : 小时(00-23)
  %M : 分钟(00-59)
  %S : 秒(00-60)
  %x : 直接显示日期 (mm/dd/yy)
  %D : 直接显示日期 (mm/dd/yy)
  %Y : 完整年份 (0000-9999)
  %m : 月份 (01-12)
  %d : 日 (01-31)
  %a : 星期几 (Sun-Sat)
  %W : 一年中的第几周 (00-53)
  %Z : 显示时区
  %s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
#不常用用选项  
%n : 下一行
  
%t : 跳格
  
%c : 直接显示日期与时间
  
%X : 相当于 %H:%M:%S
  
%r : 直接显示时间 (12 小时制
  
%y : 年份的最后两位数字 (00.99)
  
%h : 同 %b
  
%b : 月份 (Jan-Dec)
  
%B : 月份 (January-December)
  
%j : 一年中的第几天 (001-366)
  
%U : 一年中的第几周 (00-53) (以 Sunday 为一周的第一天的情形)
  
%w : 一周中的第几天 (0-6)
  
%A : 星期几 (Sunday-Saturday)
  
%I : 小时(01-12)
  
%k : 小时(0-23)
  
%l : 小时(1-12)
  
%p : 显示本地 AM 或 PM
  1.用法:
  以上选项可以进行组合,如:
  date +"%Y-%m-%d  %H-%M-%S"      因为有空格,所以需要引号
  2.计算日期:
  date -d "-2 days"  +%F         输出现在的前第两天日期
  date -d "-3 month" +%m         输出前第三个月的月份
  date -d "+50 days" +%m         输出后第50天的月份
  3.另一种表示方式:
  date -d "-2 days ago" +%d      输出后第两天的日
DSC0001.jpg

  =========================================================================================
  二:shell字符串
  下面的举例因为命令少可以写入脚本后执行,也可以在命令行输入以分号间隔;
  举例:str="abc123abcABC"
  1.计算字符串的长度
  echo ${#str}    #12
  2.字符串截取
  从左边开始
  echo ${str#a*c}         a到c的最短匹配
  echo ${str##a*c}        a到c的最长匹配
  从右边开始
  echo ${str%a*C}         从右边的最后字符开始寻找a到B的最短匹配
  echo ${str%%a*B}        从右边最后字符开始寻找a到B的最长匹配
  正向
  echo ${str:2}           从第2个位置开始提取字符串的值
  echo ${str:2:3}         从第2个位置开始提取长度为3个字符的值
  反向提取
  echo ${str:(-2)}        反向的第2个字符位置开始提取字符串
  echo ${str:(-6):2}      反向的第6个位置提取长度为2个字符的串
  3.位置参数的提取
  echo ${*:2}            第二个参数开始提取后面所有位置参数的值
  echo ${*:2:3}          从第二个参数开始提取3个位置参数的值
  4.字符串拼接
  your_name="qinjx"
  greeting="hello, "$your_name" !"
  greeting_1="hello, ${your_name} !"
  echo $greeting $greeting_1
  5.查找字符串
  string="alibaba is a great company"
  echo `expr index "$string" is`
  ========================================================================================
  三:shell三种引号
  单引号字符串的限制:
  单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
  单引号字串中不能出现单引号(对单引号使用转义符后也不行)。
  双引号的优点:
  双引号里可以有变量
  双引号里可以出现转义字符
  反引号的作用:
  反引号用来引用一条命令的结果;
  比如,使用rpm -qf ,找一个命令是由哪个包安装的,rpm -qf `which vim` ,就可以了;
  还有当我们给某个变量赋值时,也可以把一个命令的结果赋值给变量,比如 name=`hostname`
  ======================================================================
  四:shell注释
  以"#"开头的行就是注释,会被解释器忽略。
  sh里没有多行注释,只能每一行加一个#号。只能像这样:
#--------------------------------------------  
# 这是一个自动打ipa的脚本,基于webfrogs的ipa-build书写:
  
# https://github.com/webfrogs/xcode_shell/blob/master/ipa-build
  
# 功能:自动为etao ios app打包,产出物为14个渠道的ipa包
  
# 特色:全自动打包,不需要输入任何参数
  
#--------------------------------------------
  
##### 用户配置区 开始 #####
  
#
  
#
  
# 项目根目录,推荐将此脚本放在项目的根目录,这里就不用改了
  
# 应用名,确保和Xcode里Product下的target_name.app名字一致
  
#
  
##### 用户配置区 结束  #####
  

  
##这样会被注释吗?
  如果在开发过程中,遇到大段的代码需要临时注释起来,过一会儿又取消注释,怎么办呢?
  每一行加个#符号太费力了,可以把这一段要注释的代码用一对花括号括起来,定义成一个函数,没有地方调用这个函数,这块代码就不会执行,达到了和注释一样的效果。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-557844-1-1.html 上篇帖子: 第 三 十 一 天:shell 脚 本 (一) 下篇帖子: shell脚本自动创建ca证书
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表