提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
提示:以下是本篇文章正文内容,下面案例可供参考
一、shell是什么?
shell就是用户和操作系统间的命令解释器
脚本就是由linux命令组成的文件
二、基础
1.变量
1.
自定义变量
定义变量:变量名
=
变量值 变量名必须以字母或下划线开头,区分大小写
ip1=192.168.2.115
引用变量:
$
变量名 或
${
变量名
}
查看变量:
echo $
变量名
set(
所有变量:包括自定义变量和环境变量
)
取消变量:
unset
变量名
作用范围:仅在当前
shell
中有效
2.
环境变量
定义环境变量:
back_dir1=/home/backup
export back_dir1
将自定义变量转换成环境变量
引用环境变量:
$
变量名 或
${
变量名
}
查看环境变量:
echo $
变量名
env
例如
env |grep back_dir2
取消环境变量:
unset
变量名
变量作用范围: 在当前
shell
和子
shell
有效
3位置变量
$1,$2,$3,$4,$5,$6,$7,$8,$9,$(10)
命令行参数对应位置的内容
4预定变量
$0
脚本名
$*
所有的参数
$@
所有的参数
$#
参数的个数
$$
当前进程的
PID
$!
上一个后台进程的
PID
$?
上一个命令的返回值
0
表示成功
变量赋值
变量名=变量值
read
-t
5 -n 2
-p
"
提示信息
: "
变量名
-t 超过时间退出
-n 变量长度
-p 提示信息
单引号' ' 引号视内为普通字符
双引号" " 除了$,',"保留特殊功能,其他为普通字符
反引号` ` 内容视为 shell命令
反斜线:转义字符
变量的作用域
全局变量:在整个shell脚本中有效
局部变量:在单个程序中有效
变量运算符
+,- | 加法,减法 |
*,/,% | 乘,除,余 |
** | 幂运算 |
++,-- | 自加加,减减 |
!,&&,|| | 非,与,或 |
<,<=,>,>= | 比较符 |
==,!=,= | 比较符 |
<<,>> | 向左位移,向右位移 |
~,|,&,^ | 按位取反,按位异或,按位与,按位或 |
=,+=,-+,*=,%= | a+=1 等于 a=a+ |
变量子串
${content} | 返回content内容 |
${#content} | 返回content长度 |
${content:word} | 从word开始提取字符到结尾 |
${content:word:length} | 从word开始提取长度为length的字符 |
${content#word} | 从word开头删除最短word字符串 |
${content##word} | 从word开头删除最长word字符串 |
${content%word} | 从word结尾删除最短word字符串 |
${content%%word} | 从word结尾删除最长word字符串 |
${content/word/word2} | 使用word2代替第一个word |
${content//word/word2} | 使用word2代替所有的word |
条件测试
test< 表达式 >
[ 表达式 ]
[[ 表达式 ]]
((表达式))
-d 目录存在且为真,成立
-f 文件存在且为真,普通文件,成立
-r 可读
-w 可写
-x 可执行
-s 文件大小不为0
-z "字符串" 字符串不为0,则为真
[]中使用 | [[]] (())中使用 |
-eq | = |
-ne | != |
-gt | > |
-ge | >= |
-lt | < |
-le | < |
-a | && |
-o | || |
! | ! |
2.语句
if语句
单分支结构
if <表达式>
then
指令
fi
双分支语句
if <表达式> if [ $grade -gt 80 ]
then then
指令 echo "A"
else elif [ $grade -gt 60 ]
指令 then
fi echo "b"
else
echo "c"
fi
多分支语句
if <表达式>
then
指令
elif
指令
else
指令
fi
case语句
case 变量名
in
值1)
指令1
;;
值2)
指令2
;;
值3)
指令3
;;
*)
指令
esac
for循环
for
variable
in
{list} variable 循环变量 list 列表
do
statement1
statement2
...
done
3.函数
function
函数名
() {
指令
return
}
简写:
function
函数名
{
指令
return
}
数组
array=(value1 value2 value3...)
array=([1]=x [2]=y [3]=z)
array[1]=a;array[2]=b;array[3]=c
array=(`命令`)
总结
以上就是今天要讲的内容,本文仅仅简单介绍了shell的学习