概述
Shell基础知识
补充:
笔记中特殊符号: 1)' ':待填写的内容;2)。。。:任意数量和运算
Shell中的注释:以#开头
一、变量与运算符
1.变量
1)变量的声明与取值
#①赋值
'变量名' = '变量值。。。'
#②取变量的值
$'变量名'
2)变量的参数
$0 #脚本名称
$1 #运行脚本第一个参数 $2 $3 ...以此类推
${10} #运行脚本第十个以上参数要用
$# #参数的个数,常用于循环
$* #所有参数,值得注意的是:加双引号的"$*"代表参数整体
$@ #所有参数
$? #最后一次命令的返回状态:0:正确执行
2.运算符
#用于计算的变量通常使用运算符包裹
$(('运算式'))
$['运算式']
二、条件判断
1.判断格式
#1)基本语法
[ '判断条件' ] #注意判断条件与[]之间要有空格 返回true或false
[ -x ... ]
[ -a ... -b ]
#2)字符串比较
=
-n #利用 -n 来判定字符串非空
#3)两个整数之间比较
-lt #小于(less than)
-le #小于等于(less equal)
-eq #等于(equal)
-gt #大于(greater than)
-ge #大于等于(greater equal)
-ne #不等于(Not equal)
#4)按照文件权限进行判断
-r #有读的权限(read)
-w #有写的权限(write)
-x #有执行的权限(execute)
#5)按照文件类型进行判断
-f #文件存在并且是一个常规的文件(file)
-e #文件存在(existence)
-d #文件存在并是一个目录(directory)
2.三元运算
[ '判断条件' ] $$ '判断为true执行此处' || '判断为false执行此处'
[ '判断条件' ] $$ "可以是[ '判断条件' ]" || '也可以是值'
三、流程控制
1.if
#if后要有空格,条件判断式与[]之间要有空格
if [ '条件判断' ]
then
'执行语句'
elif [ '条件判断' ]
then
'执行语句'
else
'执行语句'
fi
2.case
#1);;对应java case语句中的break
#2)*)对应java case语句中default
case $'变量名' in
"'值1'")
'变量的值等于值1,执行此语句 '
;;
"'值2'")
'变量的值等于值2,执行此语句 '
;;
# 。。。
*)
'变量的值都不是以上的值,执行此语句 '
;;
esac
3.for
#语法格式1
for (( '初始值';'循环控制条件';'变量变化' ))
do
'执行语句'
done
#语法格式2
for '变量' in '值1 值2 值3。。。 '
do
'执行语句'
done
4.while
while [ '条件判断' ]
do
'执行语句'
done
四、输入与输出
1.输入
#-p:提示符,-t:等待时间
#读取输入的字符,给变量名赋值
read -t '输入等待时间' -p '提示内容' '变量名'
2.输出
echo '字符串'
echo $'变量名'
五、函数
5.1、系统函数
#1)获取文件名的字符串,可添加文件后缀,输出去掉后缀的文件名
basename '字符串/文件名' '要去掉的文件后缀'
#2)获取给定文件路径,去除最后一级的目录/文件名,的字符串
dirname '文件路径'
5.2、自定义函数
#定义函数
[ function ] funname[()]
{
Action;
[return int;]
}
#调用函数
funname
六、Shell工具
1.cut
#-d:指定切割字符,-f:指定要得到的列,不指定-d默认以Tab分割
cut -d '指定以什么字符进行切割' -f '提取切割的哪几列' '文件名'
#可搭配管道符|和grep行过滤,进行迭代切割
cut -d '字符' -f '1,2。。。' '文件名' | grep '过滤字符' | cut -d '字符' -f '1,2。。。' | 。。。
2.awk
#-F:指定分割符,-v:指定变量并赋值,{print '打印内容,可以计算和拼接字符串'。。。},/'正则表达式过滤'/
awk -v i=1 -F: '/^root/{print $3+i","}' '文件名' #以:分割以root开头,打印第3列与1的和末尾拼接','
#内置变量
FILENAME #文件名
NR #已读的记录数
NF #浏览记录的域的个数(切割后,列的个数)
六、正则表达式
1.基本语法
'ls' | grep '正则表达式'
2.常用正则
^'字符A' #以A起始
'字符B'$ #以B结尾
^$ #空值
. #类似sql中的_
* #类似sql中的%
最后
以上就是唠叨眼神为你收集整理的Shell(一)基础知识Shell基础知识的全部内容,希望文章能够帮你解决Shell(一)基础知识Shell基础知识所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复