实用的一些tips for shell script

1,一些特殊符号,如$$, $0, $1, $@

$# — shell脚本的参数个数(不算$0)

$0 — shell本身的文件名

$1~$n — 添加到shell的各参数值,$1是第一个参数,$2是第二个参数值…

$@ — 全部参数列表

$$ — shell本身的PID

$! — shell 最后运行的后台process 的PID

2,if语句

if的基本语法:

if [ command ]; then

  xxxxx

elif [ command ]; then

  xxxxx

else

  xxxxx

fi

注:[ command ]中间的命令语句两侧需要空格,不能直接接着[]写;

一些常用的判断命令:

字符串:

-z: 当字符串长度为0时为真

-n: 当字符串长度不为0时为真

str1 = str2: 字符串1与字符串2相等

str1 != str2:字符串1与字符串2不相等

str: 字符串不为空

数值:

-eq: 两数相等

-ne: 两数不等

-gt: 大于

-ge: 大于等于

-lt: 小于

-le: 小于等于

文件、文件夹:

-d DIR: 判断DIR是否为目录

-e File: 判断file是否存在

复杂逻辑:

-a: and

-o: or

!: not

3,定义变量

最简单的变量定义方式:

a=“abc”

a=100

可以将任何值(字符串、整数)赋给变量,事实上,shell中变量的值都是按照字符串来存储的,需要数值的时候,只是将字符串按照数值处理;

获取变量的值

$a

清除变量

unset a

题外话—source shell脚本中的变量设置

正常情况下,shell脚本的执行是启动一个新的shell环境来执行,在shell脚本中设置的变量当脚本执行完成后,退出了执行的shell,在当前shell中变量是无效的(未设置的)

如果想在shell脚本中设置的变量作用到当前shell环境,则需要使用source命令,source会在当前shell中直接执行,而不启动新的shell,source命令可简化为. (dot)

source ./set_var.sh

. ./set_var.sh

4,function

基本语法:

[function] sum()

{

  xxxxx

  return xx

函数内获取参数为$1 $2…

调用方式:sum 2 3

获取返回值$?

你可能感兴趣的:(实用的一些tips for shell script)