2022-05-07_Linux:bash脚本编程之-变量、变量类型等

shell编程
编辑器,解释器
编程语言:机器语言、汇编语言、高级语言
静态语言:编译型语言
-通常强类型(变量)
关键字:
事先转换成可执行格式
c\c++\java\

动态语言:解释型语言
-通常弱类型
边解释边执行
php\shell\python\perl

面向对象:java\python\perl\c++
面向过程:shell\c

变量:内存空间,命明

内存:编止的存储单元

进程:

编程能力:脚本编程

本地变量:
VARNAME=Value:整个bash进程
局部变量:
local VARNAME=Value:当前代码段
环境变量:作用域=当前shell进程及其子进程
export VARNAME=Value

撤销变量:
unset VARNAME

查看当前shell中变量
set
查看当前shell中的环境变量
printenv
env
export

追加变量输出
animal=pig
animal=$animal
animal=$animal:sheep
echo $animal
==pig:sheep
export
[root@ip-10-18-6-152 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@ip-10-18-6-152 ~]# export PATH:user/local/apache/bin
-bash: export: `PATH:user/local/apache/bin': not a valid identifier
[root@ip-10-18-6-152 ~]# export PATH=$PATH:user/local/apache/bin
[root@ip-10-18-6-152 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:user/local/apache/bin
[root@ip-10-18-6-152 ~]# export PATH=user/local/apache/bin:$PATH
[root@ip-10-18-6-152 ~]# echo $PATH
user/local/apache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:user/local/apache/bin

脚本:命令的堆砌,按实际需要,结合命令流程控制
--nano--

#!/bin/bash

#注释,没有意义

cat /etc/fstab
ls /var


first.sh.png

chmod +x first.sh [赋予权限]
./first.sh [当前目录执行]
bash first.sh [bash变量执行]

练习:
1.添加5个用户,user1....user5
2.每个用户的密码同用户名,而且要求:添加密码完成后不显示passwd的执行结果;
3.显示“添加成功”

练习2:
1.使用1个变量保存一个用户名
2.删除变量中的用户且一并删除其家目录
3.显示”用户删除完成“

bash中如何实现条件判断?

条件测试类型:
1.整数测试
2.字符测试
3.文件测试

条件测试的表达式:
[ expression ] (前后面有个空格)
[[ expression ]]
test expression

整数比较:
-eq:测试2个整数是否相等:如A -eqB

[root@ip-10-18-6-152 ~]# A=8
[root@ip-10-18-6-152 ~]# B=3
[root@ip-10-18-6-152 ~]# [ $A -eq $B ]
[root@ip-10-18-6-152 ~]# echo $?
1
[root@ip-10-18-6-152 ~]# B=8
[root@ip-10-18-6-152 ~]# echo $?
0

-ne:测试2个整数是否不相等:如A -neB
-gt:测试一个数是否>另一个数
-lt:测试一个数是否<另一个数
-ge:大于或者等于
-le:小于或者等于

命令间的逻辑关系:
逻辑与:&&
逻辑或:||

判断某个文件大小是否超过1000000000,是则输出"is a big file",否则输出'is a small file'
#!/bin/bash
LINES=`wc -l /data/logs/data_20220506-073623.log`
echo $LINES

SizeLINES=`echo $LINES |cut -d' ' -f1`
echo $SizeLINES

[ $SizeLINES -gt 1000000000 ] && echo "is a big file"  || echo 'is a small file'

单分支if语句:
if 判断条件; then
statement1
statement2
...
fi

双分支if语句:
if 判断条件 ;then
statement1
statement2
else
statement1
statement2
...
fi

练习一:判断2个数相等与否

A=5
B=1
if [ $A -eq $B ]; then
        echo "相等"
else
        echo "不相等"
fi

练习二:判断1个用户是否存在

USERNAME=user1
USERID=`ID -U $USERNAME`
GROUPID=`id -g $USERNAME`
if [ $USERID -eq $GROUPID ]; then
        echo "Good guy"
else 
        echo "Bad guy"
fi

shell中如何进行算数运算:

1.let 算术运算表达式
let C=$A+$B

  1. $[算术运算表达式]
    C=$[$A+$B]

  2. $((算术运算表达式))
    C=$(($A+$B))

4.expr 算术运算表达式:表达式中各操作数及运算符之间要有空格,而且使用命令使用
C= `expr $A + $B`

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,012评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,628评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,653评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,485评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,574评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,590评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,596评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,340评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,794评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,102评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,276评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,940评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,583评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,201评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,441评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,173评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,136评论 2 352

推荐阅读更多精彩内容