shell script的简朴先容

shell变量

1.命名规则

  • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头
  • 中心不能有空格,可以使用下划线(_)
  • 不能使用标点符号。
  • 不能使用bash里的关键字

2.界说变量:name=value
3.使用变量:$name
4.只读变量:readonly name
5.删除变量:uset name
6.变量类型

  • 局部变量:当前shell有用
  • 环境变量:所有的应用程序有用

shell字符串

  1. 双引号:可剖析变量,可以泛起转义字符
  2. 单引号:不剖析变量,原样输出
  3. 字符串拼接:
name="hello"
# 使用双引号拼接
greeting="hello, "$name" !"
greeting_1="hello, $name} !"
echo $greeting  $greeting_1
# 使用单引号拼接
greeting_2='hello, '$name' !'
greeting_3='hello, ${name} !'
echo $greeting_2  $greeting_3

输出效果为:

hello, hello ! hello, hello} !
hello, hello ! hello, ${name} !
  1. 获取字符串长度
string="abcd"
echo ${#string} #输出 4
  1. 提取子字符串
string="hello world"
echo ${string:1:4}#输出 ello
# 字符串下标从0最先
  1. 查找子字符串
string="hello world"
echo `expr index $string e`#输出2

7.反引号和$()一样,内里的语句看成下令执行

shell数组

  1. 数组界说:arrname=(value0 value1 value3)
  2. 数组读取:${arrname[]},中括号内为数组下标,从0最先
  3. 获取数组长度:length=${#arrname[@]},*号也可以
  4. 或许数组单个元素的长度:lengthn=${#arrname[n]},n为数组下标

shell注释

  1. 单行注释:#
  2. 多行注释:<<EOF以EOF竣事,EOF可以是随便字母

shell通报参数

  1. 向剧本传参
  • $0:执行的文件名
  • $1:为第一个参数
  • $2:为第二个参数 以此类推
  1. 特殊参数
  • $#:通报到剧本的参数个数
  • $$:剧本运行的当前历程ID
  • $!:后台运行的最后一个历程ID
  • $?:回传码,显示最后下令的退出状态
  • $@,$*:显示所有通报的参数

shell运算符

  1. 算数运算符

假设变量a=10,b=20

运算符 说明 举例
+ 加法 expr $a + $b 效果为 30。
- 减法 expr $a - $b 效果为 -10。
* 乘法 expr $a \* $b 效果为 200。
/ 除法 expr $b / $a 效果为 2。
% 取余 expr $b % $a 效果为 0。
= 赋值 a=$b 将把变量 b 的值赋给 a。
== 相等 用于对照两个数字,相同则返回 true。 [ $a == $b ] 返回 false。
!= 不相等 用于对照两个数字,不相同则返回 true。 [ $a != $b ] 返回 true。
  1. 关系运算符
运算符 说明 举例
-eq 检测两个数是否相等,相等返回 true。 [ $a -eq $b ] 返回 false。
-ne 检测两个数是否不相等,不相等返回 true。 [ $a -ne $b ] 返回 true。
-gt 检测左边的数是否大于右边的,如果是,则返回 true。 [ $a -gt $b ] 返回 false。
-lt 检测左边的数是否小于右边的,如果是,则返回 true。 [ $a -lt $b ] 返回 true。
-ge 检测左边的数是否大于即是右边的,如果是,则返回 true。 [ $a -ge $b ] 返回 false。
-le 检测左边的数是否小于即是右边的,如果是,则返回 true。 [ $a -le $b ] 返回 true。
  1. 逻辑运算符
运算符 说明 举例
&& 逻辑的 AND [[ $a -lt 100 && $b -gt 100 ]] 返回 false
|| 逻辑的 OR [[ $a -lt 100 || $b -gt 100 ]] 返回 true
  1. 布尔运算符
运算符 说明 举例
! 非运算,表达式为 true 则返回 false,否则返回 true。 [ ! false ] 返回 true。
-o 或运算,有一个表达式为 true 则返回 true。 [ $a -lt 20 -o $b -gt 100 ] 返回 true。
-a 与运算,两个表达式都为 true 才返回 true。 [ $a -lt 20 -a $b -gt 100 ] 返回 false
  1. 字符串运算符
    假设变量a=hello,b=world
运算符 说明 举例
= 检测两个字符串是否相等,相等返回 true。 [ $a = $b ] 返回 false。
!= 检测两个字符串是否相等,不相等返回 true。 [ $a != $b ] 返回 true。
-z 检测字符串长度是否为0,为0返回 true。 [ -z $a ] 返回 false。
-n 检测字符串长度是否不为 0,不为 0 返回 true。 [ -n "$a" ] 返回 true。
$ 检测字符串是否为空,不为空返回 true。 [ $a ] 返回 true
  1. 文件测试运算符
操作符 说明 举例
-b file 检测文件是否是块装备文件,如果是,则返回 true。 [ -b $file ] 返回 false。
-c file 检测文件是否是字符装备文件,如果是,则返回 true。 [ -c $file ] 返回 false。
-d file 检测文件是否是目录,如果是,则返回 true。 [ -d $file ] 返回 false。
-f file 检测文件是否是通俗文件(既不是目录,也不是装备文件),如果是,则返回 true。 [ -f $file ] 返回 true。
-g file 检测文件是否设置了 SGID 位,如果是,则返回 true。 [ -g $file ] 返回 false。
-k file 检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。 [ -k $file ] 返回 false。
-p file 检测文件是否是有管道,如果是,则返回 true。 [ -p $file ] 返回 false。
-u file 检测文件是否设置了 SUID 位,如果是,则返回 true。 [ -u $file ] 返回 false。
-r file 检测文件是否可读,如果是,则返回 true。 [ -r $file ] 返回 true。
-w file 检测文件是否可写,如果是,则返回 true。 [ -w $file ] 返回 true。
-x file 检测文件是否可执行,如果是,则返回 true。 [ -x $file ] 返回 true。
-s file 检测文件是否为空(文件巨细是否大于0),不为空返回 true。 [ -s $file ] 返回 true。
-e file 检测文件(包罗目录)是否存在,如果是,则返回 true。 [ -e $file ] 返回 true

流程控制

  1. if 语句语法花样:
if condition
then
    command1 
    command2
    ...
    commandN 
fi
  1. if else 语法花样:
if condition
then
    command1 
    command2
    ...
    commandN
else
    command
fi
  1. if else-if else 语法花样:
if condition1
then
    command1
elif condition2 
then 
    command2
else
    commandN
fi

for循环一样平常花样为:

for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done
  1. while 循环一样平常花样
while condition
do
    command
done
  1. until 循环一样平常花样
until condition
do
    command
done
  1. case in花样
case 值 in
模式1)
    command1
    command2
    ...
    commandN
    ;;
模式2)
    command1
    command2
    ...
    commandN
    ;;
esac
  1. 跳出循环:
  • break跳出所有循环
  • continue跳出当前循环

函数界说

输入输出重定向

  1. 文件描述符
  • 尺度输入 0
  • 尺度输出 1
  • 尺度错误输出 2
  1. stdin<file 尺度输入重定向
  2. stdout>file 尺度输出重定向
  3. stderr>>file 尺度错误输出重定向,以追加的方式

shell文件包罗

  1. .filename
  2. source filename
,

欧博网址开户

www.chinadsn9.com欢迎进入欧博网址(Allbet Gaming),欧博网址开放会员注册、代理开户、电脑客户端下载、苹果安卓下载等业务。

Allbet Gaming声明:该文看法仅代表作者自己,与阳光在线无关。转载请注明:ug环球会员充值:shell script的简朴使用
发布评论

分享到:

山东滨州天气:简大帝或回归曼联
3 条回复
  1. www.allbetgaming.net
    www.allbetgaming.net
    (2020-06-30 01:47:28) 1#

    欧博亚洲客户端欢迎进入欧博亚洲客户端(Allbet Game):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。高大上的感觉

  2. 环球UG
    环球UG
    (2020-07-27 00:05:50) 2#

    Allbet开户欢迎进入Allbet开户(Allbet Game):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。没废话,我喜欢

  3. Allbet客户端下载
    Allbet客户端下载
    (2020-08-28 00:09:26) 3#

    欧博亚洲官方注册欢迎进入欧博亚洲官方注册(Allbet Game):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。来顶

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。