Bash编程基础2012.pptVIP

  • 5
  • 0
  • 约6.92千字
  • 约 56页
  • 2017-06-11 发布于北京
  • 举报
注意双封号; 应用场景示例,比较文件差异或取交集 列位置须根据自定义日志格式修改 调试技巧 打印出变量的值观察 打印出要执行的命令观察 观察命令的返回值 把crontab中执行的脚本做重定向观察错误提示 set -x 观察脚本的执行过程 脚本规范 #!/bin/bash ################################################ # Description: # Author: # Version: # History: ################################################ export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin var_a=$1 var_b=$2 if [ -z $var_a -o -z $var_b ] ;then echo usage:$0 input_a input_b exit 1 fi ... 其他工具 comm and diff 彩色闪烁 expect 脚本加密 推荐书目 《abs-guide》 《LINUX与UNIX SHELL编程指南》 《bash中文手册》 pdf download: 13/shell.zip 应用场景示范iplistcss whitch rm Expr 只能做整数运算 浮点值或其他运算函数可用bc :echo scale=3;$filesize/$downtime | bc | awk {printf %.3f\n,$0} 前两条有误:变量引用必须用双引号,否则为空时出错 第三条可解决变量值为空时的报错,或者通过双引号解决 第四条双括号专做数字比较,但变量值为空或非数字时报错,须做类型检验 man test 常用变量 $? 最后一个命令的退出状态 $! 最后一个后台进程的pid $$ 当前进程的pid $0 当前程序名称 $n n为1,2...n, 脚本或函数的参数 $#: 所给的参数个数 $*: 所有给出的参数 “$@” 双引号必须,类似$*,但结果被替换为”$1”,”$2”…… 常用变量 $(command) 保存括号内命令的执行结果,同`command` $((experssion)) 括号内部为变量和运算符构成的算术表达式 $HOME 用户主目录 $PATH 以:分隔的命令搜索路径名 $PWD 当前目录的全路径 $UID 用户ID,0代表超级用户 命令替换 作用: 将命令的输出结果赋值给变量 语法: var=` command ` var=$( command )? 例: today=$( date +%F )? 变量的要点 子进程不能改变父进程的变量,反之亦然 (用export name导出可使子进程继承父进程) 大部分的环境变量都是在login时设置的 当一个变量被引用时, 要尽量加上双引号 要注意检查变量是否合法 数值运算 方法 let, expr (( ))? bc 常用运算 + - * / % (加,减,乘,除,取模)? 例 i=10; j=20; (( i++ )); (( cnt = i + j ))? cnt=$( echo $i + $j | bc )? 流程控制 条件判断 if case 循环 for, while break, continue if条件判断表达式 if test $foo = bar;then echo ok;fi if [ $foo = bar ];then echo ok;fi if [[ $foo == bar ]];then echo ok;fi if (( $? == 0 ));then echo ok;fi if grep foo myfile /dev/null; then echo ok;fi 返回值为0是true [[ ]]测试文件 if ... else ... if [ expression ];then … elif [ expression ];then … else … fi #example read answer if [[ $answer == Y ]]; then echo answer Y elif [[ $answer == N ]]; then echo answer N else echo ooh ... fi case case $var in condition1)? stat

文档评论(0)

1亿VIP精品文档

相关文档