Linux中的shell编程

shell编程

重定向

cat >temp

输入内容到temp文件中,如果存在temp则覆盖,没有则新建

cat >>temp

追加内容

cat temp1>>temp2

将temp1中的内容追加到temp

命令执行控制符号

; 一个命令行执行多条语句

命令替换符

1.双引号:用于带空格的字符串

2.单引号 阻止shell解析字符串

3.单撇反引号:将执行命令的结果放到变量里

转义符

variable=\$bva

\阻止shell对”$“元字符的解释工作

变量

  • 变量名=字符串

  • $变量名 或 ${变量名} 访问变量

unset 变量名取消变量名

final变量

readonly 变量名

变量的数值运算

无法直接进行,可通过expr运算符

expr $num1 运算符 $num2

如果运算符为*,&,|,<,>必须用\转义符使其失去特殊含义

命令别名

alias

直接使用可查看命令别名

自定义命令别名

alias 别名=”原命令“

unalias 别名 取消别名

历史命令

history [-c] [n]

-c 清空(clear)

-n n为数字,即显示几条命令

==!!==上一条命令,感觉用处不大

第一个shell脚本

#! /bin/bash
# 注释
echo ”hello world“
date

执行

1.授权

chmod 775 脚本名

chmod a+x 脚本名

2.用 source 脚本名执行

交互式shell脚本

read -p "please input your name" name
echo "hello " $name

执行

bash name

注释

单行注释 #
多行注释 :<

分支结构

Linux中的shell编程_第1张图片
Linux中的shell编程_第2张图片

逻辑判断

只支持数字的关系运算符

-eq 等于
- neq not equal
-gt A greater than B
-lt A less than B
-ge
-le
-a and (&&)
-o or (||)
!

脚本调试

bash [-x][-n] 脚本名
-x 执行脚本本同时显示脚本语句
-n 检查语法错误不执行

函数

Linux中的shell编程_第3张图片

字符串

  • 获取字符串长度
${#string};
${#string[0]}
  • 提取子字符串
${string:1:4}

数组

  • 定义数组

值与值之间用空格隔开

数组名=(值1 值2 ... 值n)
  • 读取数组元素
${数组名[下标]} 读取单个
${数组名[@]} 读取全部
  • 读取数组长度
${#数组名[@]}

|

函数

[外链图片转存中…(img-AZme5QDw-1655274286263)]

字符串

  • 获取字符串长度
${#string};
${#string[0]}
  • 提取子字符串
${string:1:4}

数组

  • 定义数组

值与值之间用空格隔开

数组名=(值1 值2 ... 值n)
  • 读取数组元素
${数组名[下标]} 读取单个
${数组名[@]} 读取全部
  • 读取数组长度
${#数组名[@]}

你可能感兴趣的:(linux,运维)