linux bash

$# 传入脚本参数个数

$*  所有传入脚本的参数,空格分开

$0  脚本名称

$1 第一个参数

$2 第二个参数

bash 注意:

变量的赋值号"=" 两边不能留有空格,条件语句中的[_$a_=_$b_] 左右都有空格(用_ 表示)

,并且语句结尾不需要分号,

,local 声明局部变量,

,所有变量类型都是字符串,所以不需要类型修饰符

 

if 语句需要fi 成对使用,条件需要用[] 括起来

比较操作 整数操作 字符串操作

相同  -eq    =

不同  -ne    !=

大于  -gt    >

小于  -lt    <

大于或等于   -ge
小于或等于   -le
为空      -z
不为空     -n

 

-e (exist)文件已经存在
-f (file)文件是普通文件
-s (size)文件大小不为零
-d (directory)文件是一个目录
-r (read)文件对当前用户可以读取
-w (write)文件对当前用户可以写入
-x (execute  首字母e和exist 重复,所以取第二个,,猜测)文件对当前用户可以执行

 

for var in [list]
do
  #code block
done

其 中 $var 是循环控制变量,[list] 是 var 需要遍历的一
个集合,do/done 对包含了循环体,相当于 C 语言中的
一对大括号。另外如果do 和 for 被写在同一行,必须在
do 前面加上 “;”。如: for $var in [list]; do

eg:

#!/bin/bash
for day in Sun Mon Tue Wed Thu Fri Sat
do
echo $day
done

第一行day 不用加&,  第3行却需要

 

BASH 中的 case 结构与 C 语言中的 switch 语句
的功能比较类似,可以用于进行多项分支控制。
case "$var" in
condition1 )
;;
condition2 )
;;
* )
default statments;;

 

eg:

#!/bin/bash
echo "Hit a key, then hit return."
read Keypress
case "$Keypress" in
[A-Z] ) echo " Uppercase letter";;
[a-z] ) echo " Lowercase letter";;
[0-9] ) echo "Digit";;
* ) echo "Punctuation, whitespace, or other";;

posted @ 2014-06-04 14:33  望远近  阅读(123)  评论(0编辑  收藏  举报