shell 与makefile有关常用总结

shell脚本的开头必须加#! /bin/bash
test:
  对文件测试
  - d 目录- s 文件长度大于0、非空
  - f 正规文件- w 可写
  - L 符号连接- u 文件有s u i d位设置
  - r 可读- x 可执行
  例子:[-d lj] //lj目录存在吗? 存在则为真
 
  逻辑测试
  -a (与) -o (或)

  字符串测试
  [string1 operator string2]
  = 两个字符串相等。
  != 两个字符串不等。
  -z 空串。
  -n 非空串。

  进行字符串比较时 变量必须用双引号...在变量赋值时,变量没有规定必须要双引号
  如:["$PATH1" = "$PATH2"]
 
  测试数字
  -eq 数值相等。
  -ne 数值不相等。
  -gt 第一个数大于第二个数。
  -lt 第一个数小于第二个数。
  -le 第一个数小于等于第二个数。
  -ge 第一个数大于等于第二个数

if 条件判断
if 条件1
then 命令1
elif 条件2
then 命令2
else 命令3
if
case
case 值 in
模式1) 命令1
...
;; //两个分号
模式2)命令2
...
;; //两个分号
esac
for
    for 变量名i n列表
    do
命令1
命令2…
    done
双引号:
   对shell, 对已经赋字符串值的变量,有没有双引号都是一样的值.
   如: 
   #MYDATE="date"
   #echo $MYDATE
   date    //输出也是data, 但在条件测试里,必须要加双引号.
单引号:
   与双引号一样. 但如果屏蔽了它特殊的含义,将会单引号被输出...
   如:
   #GIRL='beauty'   //如何echo $GIRL 则输出的是 beauty
   #echo "she is '$GIRL'" //里面的单引号被输出
   she is 'beauty' 
反引号:
   shell将反引号中的内容作为一个系统命令,并执行其内容
   如:
   $echo `data`
   Sun May 16 16:40:19 GMT 1999
   
常用嵌入标准命令
空,永远返回为t r u e
. 从当前shell中执行操作
break 退出for、while、until或case语句
cd 改变到当前目录
continue 执行循环的下一步
exit 退出当前shell
pwd       显示当前目录
位置参数: 如果要访问超过$9参数,请用shift
   $0    $1   $2  $3   $4   $5   $6   $7   $8   $9
  脚本名字 Did   You See The   Full Moon

特殊变量参数
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超 过9个
$$ 脚本运行的当前进程I D号
$! 后台运行的最后一个进程的进程I D号
$@ 与$ #相同,但是使用时加引号,并在引号中返回每个参数
$- 显示s h e l l使用的当前选项,与s e t命令功能相同
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章