key words : 执行多个命令的方法 、 创建与执行脚本、反引号`` 、数学计算
8.1 执行多个命令的方法:
1、在每个命令间用 ; 隔开 
[root@localhost ~]# date;who
2011年 05月 29日 星期日 08:44:32 EDT
root     :0           2011-05-29 08:32
root     pts/0        2011-05-29 08:33 (:0.0)
2、在每个命令间用 && 隔开,表示当前一个命令执行成功才执行下一个命令,常用在自动安装的script中
[root@localhost ~]# liting&&who
bash: liting: command not found
[root@localhost ~]#
3、|| : 当前一个命令执行成功时就不会往下执行,若失败就继续往下执行。
[root@localhost ~]# who||liting
root     :0           2011-05-29 08:32
root     pts/0        2011-05-29 08:33 (:0.0)
[root@localhost ~]#
[root@localhost ~]# liting||who
bash: liting: command not found
root     :0           2011-05-29 08:32
root     pts/0        2011-05-29 08:33 (:0.0)
[root@localhost ~]#
8.2 创建脚本
bash shell程序结构
大概由变量设置、内置命令、shell语法结构、函数及其他命令行的程序组成。
例:
#!/bin/bash                                          //表示用/bin/bash编译执行这个script文件
functionshow_name() {                                                       //定义一个函数
echo "今天是$1, 你是$2,来自$3"
}
name="$1"// 三个变量设定
ip="192.168.0.9"
today=`date +%F`
if [ $# !=1 ]; then//if判断语法结构
echo "Usage: ./$0 [使用者名称]"
exit
fi
show_name "$today" "$name" "$ip"// 调用show_name函数
sleep 5// 暂停5秒
echo//输出空行
echo "bye-bye :)"
主意事项:
1、脚本文件第一行要指定所用的shell
例如: #!/bin/bash
2、给脚本添加可执行权限
例:
[root@localhost ~]# vim bb
#!/bin/bash
date
who
[root@localhost ~]# ./bb
2011年 05月 29日 星期日 08:51:30 EDT
root     :0           2011-05-29 08:32
root     pts/0        2011-05-29 08:33 (:0.0)
[root@localhost ~]#
检查script语法
[root@localhost ~]# bash -v aa
[root@localhost ~]# bash -n aa
[root@localhost ~]# bash -x aa
执行bash script:
1、切换到脚本所在的目录
./scriptname 或 bash scriptname
2、直接输入脚本所在绝对路径
3、.   绝对路径
8.4 反引号``
反引号允许将shell命令的输出直接赋值给变量
例:
[root@localhost ~]# test=`date`直接把date的结果赋给test
[root@localhost ~]# echo $test
2011年 07月 20日 星期三 20:56:10 EDT
每天23点48分以当天的日期命名备份一次messages日志文件
[root@localhost ~]# cat log
#!/bin/bash
today=`date +%y%m%d`
cat /var/log/messages > messages.$today
[root@localhost ~]# chmod u+x log
[root@localhost ~]# crontab -e
58 23 * * *./log
8.7 数学计算
1、expr命令—限制较多
[root@localhost ~]# expr 12 + 2          注意符号和数字直接要有空格
14
[root@localhost ~]# expr 12 * 2
expr: 语法错误
[root@localhost ~]# expr 12 \* 2       遇到通配字符要先转义
24
[root@localhost ~]# expr 12 / 2
6
[root@localhost ~]#
2、使用括号—推荐使用
例:
[root@localhost ~]# cc=$[1 * 4]
[root@localhost ~]# echo $cc
4
[root@localhost ~]# cat count
#!/bin/bash
var1=$[50 * 2]
var2=45
var3=$[$var1 / $var2]
echo the final result is $var3
[root@localhost ~]# ./count
the final result is 2
[root@localhost ~]#
bash shell   只支持整数算法,对于实际运算是个较大的限制,可以用内置的bash(bc)计算器解决
bc计算器可以识别:
数字(整型和浮点型)
变量(简单的变量和数组)
注释(以英镑符号开始的行或C语言的/**/对)
表达式
编程语句(例如if-then)
函数
例:
简单的加减:
[root@localhost ~]# bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
2+2
4
2.5*2
5.0
3.14159*(20+192)
666.01708
quit
[root@localhost ~]#
识别变量:
[root@localhost ~]# bc -q
var1=10
var2=2
var1*2
20
var2=var1-9
print var2
quit
[root@localhost ~]#
控制小数点:
[root@localhost ~]# bc -q
3/5
0
scale=3
3/5
.600
quit
在脚本中使用bc
[root@localhost ~]# cat bc
#!/bin/bash
var1=`echo "scale=4;3.14/5" | bc`
echo the answer is $var1
[root@localhost ~]# ./bc
the answer is .6280
[root@localhost ~]#

转载于:https://blog.51cto.com/oneliting/650928

第八章 基本脚本编译相关推荐

  1. 【Groovy】Groovy 脚本调用 ( Groovy 脚本编译 | Groovy 脚本字节码文件分析 )

    文章目录 一.Groovy 脚本编译 二.Groovy 脚本字节码文件分析 一.Groovy 脚本编译 Groovy 脚本编译后的字节码文件是一个继承 Script 的类 ; 编译下面的 Script ...

  2. 【开发环境】Windows 系统中使用 Makefile 构建脚本编译 C 程序 ( 下载并安装 TDM-GCC 编译器 | 配置环境变量 | 编译 Makefile 程序 )

    文章目录 一.下载 TDM-GCC 编译器 二.安装 TDM-GCC 编译器 三.配置环境变量 四.根据 Makefile 脚本编译 C 程序 一.下载 TDM-GCC 编译器 下载并安装 TDM-G ...

  3. 如何用shell脚本编译java工程

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  4. shell脚本编译规范(编写第一个脚本,脚本变量的作用,类型 ,了解read命令,let命令,环境变量和预定义变量)

    文章目录 shell脚本编译规范 shell脚本应用场景 shell编程规范 编写第一个脚本 执行脚本文件四种方法 echo输出友好提示信息 管道与重定向 管道操作符号"|" sh ...

  5. 【无标题】QT 脚本编译qt工程

    QT 脚本编译qt工程 call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"  x ...

  6. Python 把脚本编译打包成EXE文件 —— pyinstaller 的安装和使用

    安装 pyinstaller 要把Python脚本编译打包成.exe可执行文件,需要安装 pyinstaller.exe . 打开windows控制台窗口cmd.exe,执行以下命令,Python会自 ...

  7. unity3d 脚本编译

    Unity把所有的脚本编译为.NET  dll文件,这些 dll文件将在运行时实时地进行汇编.这 使得Unity的脚本运行速度非常快,比传统的 JavaScript快 20倍左右,只比本地 C++代码 ...

  8. v58.03 鸿蒙内核源码分析(环境脚本) | 编译鸿蒙原来很简单 | 百篇博客分析HarmonyOS源码

    颜渊问仁.子曰:"克己复礼为仁.一日克己复礼,天下归仁焉.为仁由己,而由人乎哉?"颜渊曰:"请问其目."子曰:"非礼勿视,非礼勿听,非礼勿言,非礼勿动 ...

  9. mysql 5.6.36安装图解_2017年12月聚合文章--实战-Mysql5.6.36脚本编译安装及初始化 | 码友网...

    概述 本文为centos7.3自动化编译安装mysql5.3.6的脚本及后续初始化操作,话不多少,直接上脚本. 安装脚本install.py如下:#coding=utf-8#!/usr/bin/pyt ...

最新文章

  1. 【转载】如何:为 Windows Phone 创建警报和提醒
  2. JavaScript高级程序设计(第3版)手写第一天。2019年2月23日,星期六
  3. matlab中矩阵的左除右除
  4. Git提示Please move or remove them before you switch branches.
  5. 为了更好——关于博客搬迁的说明
  6. 在C#中从Keras.NET开始——训练您的第一个模型
  7. 阶段3 2.Spring_06.Spring的新注解_7 spring整合junit问题分析
  8. 人工智能撰稿将代替人工写作?我们拭目以待
  9. 威金Worm.Viking病毒分析及处理
  10. Windows 10 到期时间如何查看
  11. 机器学习 -- PCA(Ⅱ 梯度上升法解决主成分分析问题)
  12. java使用outlook发邮件
  13. hdu 3625 Examining the Rooms
  14. 使用 window.open 打开新窗口
  15. NANK南卡和明基护眼台灯,到底哪个好?全方位测评两款热门护眼台灯
  16. 顶刊TIP 2022!阿里提出:从分布视角出发理解和提升对抗样本的迁移性
  17. mp4v2再学习 -- Linux 下安装说明
  18. 二、解线性方程组的直接方法
  19. 斯尼格(SING) - 技术也将乌拉圭牛肉推到了最苛刻的市场
  20. 用 visual foxpro 也可以编写“迅雷下载”

热门文章

  1. java同时关闭两个窗口_在一个窗口中同时关闭多个窗口的问题(Swing中事件多点传送的问题) | 学步园...
  2. linux下挂载samba服务器,Linux使用mount挂载samba共享
  3. python动态映射_Python Django框架url反向解析实现动态生成对应的url链接示例
  4. 命令行cd到_前端(只)需要掌握这些命令行(就还行了)
  5. vfp程序转换为c语言程序软件,c语言程序设计及vfp程序设计试题.doc
  6. 香港计算机课程,香港计算机科学专业学什么?开设了哪些课程
  7. 【JAVA基础篇】抽象类和接口的区别
  8. filter 灰度处理:公祭日,一行代码让页面变成黑白色调
  9. 七桥问题c语言程序数据结构,数据结构与算法学习——图论
  10. ZZUOJ 1199 大小关系(拓扑排序,两种方法_判断入度和dfs回路判断)