Shell(1)

2010.7.10
Shell 是操作系统与用户进行交互操作的界面
Shell 脚本程序是 Shell 命令语句的集合,用于实现特定的功能;
Shell 脚本程序保存在文本文件中,可以使用文本处理程序进行阅读和编辑;
Shell 脚本程序是由 Shell 环境解释执行的,不需要在执行前进行编译;
执行 Shell 程序时, Shell 脚本文件需要具有可执行( x )的属性。
文件 Shells 中保存了 Linux 系统中可使用 Shell 程序列表 /etc/shells
Shell 变量的分类:
环境变量:主要是在程序运行的时候需要设置。
特殊变量 ( 系统变量 ) :分为预定义变量和位置变量。在对参数判断和命令返回值判断会使用。
用户变量 ( 本地变量 ) :在编程过程中使用最多。
反引号 (`) 可用来进行命令替换,执行时先执行反引号中的命令,并把执行结果赋给变量。
用双引号 (“) 引起来的字串中,变量替换依然有效,因此也称弱引用;此名,使用双引号还能够阻止单词分割。
用单引号 (‘) 引起来的字串,变量替换将不再进行,因此也被称为强引用。
变量的显示使用 echo 命令,格式如下:
   echo  $ 变量名        echo  ${ 变量名 }
 
 
管道操作符  |
“|” 符用于连接左右两个命令,将 “|” 左边的命令执行结果(输
出)作为 “|” 右边命令的输入
脚本中应包括的内容:
①脚本运行环境设置   #!/bin/bash
②注释行以 # 开始  # Clean  command  history, 清除用户命令历史
③脚本语句    history �Cc
if/then 结构用来判断命令列表的退出状态码是否为 0( 因为在 UNIX 惯例 , 0 表示 成功 ”), 如果成功的话 , 那么就执行接下来的一个或多个命令。
整数测试:

-eq   等于 [ "$a" -eq "$b" ]
-nq    不等于 [ "$a" -ne "$b" ]
-gt    大于 [ "$a" -gt "$b" ]
-ge    大于等于 [ "$a" -ge "$b" ]
-lt    小于 [ "$a" -lt "$b" ]
-le    小于等于 [ "$a" -le "$b" ]

字符串测试:

=   等于 [ "$a" = "$b" ]
!=  不等于 [ "$a" != "$b" ]
<  小于 [ “$a” \< “$b” ] ,转义
>  大于 [[ “$a” > “$b” ]]
-z  字符串为 "null", 长度为零
-n  字符串不为 "null"

需注意的是:若使用后 -z -n 测试时,字符串最好用双引号引起
来。 […] 中的大于号和小于号需要转义, [[…]] 则不需要。
文件测试:
-f file  测试文件是否为普通文件
-d dir  存在且为一个目录时为真
-e     判断文件是否存在
-s     判断文件大小是否为 0 ,不为 0 时返回真
组合测试条件:
-a    逻辑与         exp1  -a  exp2
如果表达式 exp1 exp2 都为真的话,那么结果为真。
-o   逻辑或        exp1  -o  exp2
    如果表达式 exp1 exp2 中至少有一个为真的话,那么结果为真。
!注意 && || 如果用来组合测试条件,只能用于 [[…]] 中,而一般 -a �Co 是用在 […] 中或 test 语句中。
shell 也可以进行简单的算术运算。格式如下:
$((expression))         $[ expression ]
 
if 条件判断句

  if [ condition-true]
      then
        command
        
    fi
 
  if [ condition-true]
      then
       command
       
    else
       command
       
    fi
  if [ condition1 ]
     then
       command
        
    elif [ condition2 ]
     then
       command
     
    else
       command
       
    fi
 

! 注意: if/then/fi 都是独立的语句,若要放在同一行,需要用分号隔开。
case 语句:

case 的作用和多个 if/then/else 语句的作用相同 , 是它们的简化结构,特别适用于创建菜单
②每句测试行 , 都以右小括号 ) 来结尾
③每个条件判断语句块都以一对分号结尾
case 块以 esac (case 的反向拼写 ) 结尾  
 
case  “$variable”  in
“$conditional”)
command…
;;
“$condition2”)
command…
;;
esac

本文出自 “兜兜转转” 博客,转载请与作者联系!

你可能感兴趣的:(shell,职场,休闲,if语句,case语句)