上两篇文章详细介绍了Linux的常用命令以及Shell的基本认识。 Shell允许用户建立变量存储数据,但是不支持数据类型(整形、字符、浮点型),将任何变量的值都解释为一个字符串。 打印Shell变量必须加上$符号,如果不加该符号会默认打印该字符串。同时等号两边不加空格。 使用unset命令删除变量的赋值 当参数数量超过两位数时,需要加上大括号 Shell程序由零或者多条Shell语句构成。Shell语句包括三类: 说明性语句:以#开始到改行结束,不被执行(除脚本第一行告诉系统用那种类型的Shell来执行) 功能性语句:任意shell命令、用户程序或者其它shell程序。 ① read从标准输入读入一行,并且赋值给后面的变量,语法为: 注意:如果执行read语句时标准输入无数据,则程序在此处停留,直到数据到来或者被终止执行。 注意:如果变量输入多了,多余的值全部赋值给最后一个变量。 注意:变量赋值没有空格,算数运算符两侧有空格 ③test测试语句: 字符串测试: 整数测试: 文件测试: 结构性语句:条件测试语句、多路分支语句、循环语句、循环控制语句等。 注意:在Shell中表达式为真——为0即为真。可以是一条,也可以是多条表达式来判断。同时也可以像C语言一样进行嵌套 ② 多路分支语句 case…esac 注意:case语句只能检测字符串变量;各模式中可用文件名元字符,以右括号结束;命令行以单独的双分号行结束,退出case语句;模式n常写为字符*表示所有其它模式;最后一行双分号可以省略。 ③ 循环语句 当循环次数已知或确定时,使用for循环语句来多次执行一条或者一组命令。循环体由语句do和done来限定。格式如下: 变量依次取单词表中的各个单词,每取一次单词,就执行一次循环体中的命令。循环次数由单词表中的单词个数确定。命令表中的命令可以是一条,也可以是由分号或者换行符分开的多条。 当不知道循环次数时,我们选择使用while循环。循环语法结构如下: while循环首先测试其后的命令或表达式的值,如果为真,就执行一次循环体中的命令,然后测试该命令或表达式的值,执行循环体,直到该命令或表达式为假时退出循环。 这几段代码中有关于变量运算的知识,具体的请戳链接:Linux Shell之数字加减文章中有详细介绍。 输出结果: 不积小流无以成江河,不积跬步无以至千里。而我想要成为万里羊,就必须坚持学习来获取更多知识,用知识来改变命运,用博客见证成长,用行动证明我在努力。
Linux常用命令:https://blog.csdn.net/weixin_44895651/article/details/105289038
Shell基础:https://blog.csdn.net/weixin_44895651/article/details/105931755文章目录
Shell变量
Shell变量不需要向C语言中那样需要提前定义,Shell变量可以直接赋值。
例如:count=1#定义一个count变量,并且赋值为1 echo $count#打印变量的值 DATE=date#定义一个DATE变量,并且把日期赋值给该变量(属于命令置换) echo $DATE#打印日期
Bourne Shell的四种变量:
在Shell编程中通常使用全大写变量,方便识别
变量的调用:在变量前加$符号
Linux Shell/bash从右向左赋值$Y=y $ X=$Y $ echo $X y
$ Z=hello $ echo ¥Z hello $ unset Z#删除变量
参数
意义
$0
与键入命令行一样,包含脚本文件名
$1,$2,…$9
分别包含第一个到第九个命令行参数
$#
包含命令行参数的个数
$@
包含命令行参数:“$1,$2,…$9 ”
$?
包含前一个命令行的退出状态
$*
包含所有命令行参数:“ $1,$2,…$9”
$$
包含正在执行进程的ID号
在使用系统时,已经在脚本中提前写好的一些环境变量。
常用的Shell环境变量:
变量名
作用
HOME
/etc/passwd文件中列出用户主目录
IFS
默认为空格,tab及换行符
PATH
Shell搜索路径
PS1,PS2
默认提示符($)及换行提示符(>)
TERM
终端类型,常用的有vt100,ansi,vt200,xterm等
Shell程序和语句
read var#把读入的数据全部赋给var read var1 var2 var3#把读入的第一个单词赋值给var1,第二个赋值给var2...
#输入一个变量: #!/bin/bash echo 'input a number' read NUM echo $NUM #输入多个变量: #!/bin/bash echo 'input year month day' read Y M D echo "today is $Y-$M-$D"
②算数运算命令expr主要用于简单的整数运算,包括加(+)、减(-)、乘(*)、除(/)和求模(%)等。#!/bin/bash A='expr 3 + 5 * 4'#注意运算符两边必须有空格 echo $A
测试对象:字符串、整数、文件属性test '$answer' = 'yes'#测试变量answer是否为字符串类型 test $num -eq 18#测试变量num是否为整数18 test -d tmp#测试tmp是否为一个目录名
命令
测试内容
s1 = s2
测试两个字符串的内容是否完全一样
s1 != s2
测试两个字符串内容是否有差异
-z s1
测试字符串的长度是否为0
-n s1
测试s1字符串长度是否不为0
命令
测试内容
a -eq b
测试a和b是否相等
a -nq b
测试a和b是否不相等
a -gt b
测试a是否大于b
a -ge b
测试a 是否大于等于b
a -lt b
测试a是否小于b
a -le b
测试a是否小于等于b
命令
测试内容
-d name
测试name文件是否为一个目录
-e name
测试一个文件是否存在
-f name
测试name文件是否为普通文件
-L name
测试name文件是否为符号链接
-r name
测试name文件是否存在且可读
-w name
测试name 文件是否是否存在且可写
-x name
测试name文件是否存在且尚可执行
-s name
测试name文件是否存在且长度不为0
f1 -nt f2
测试文件f1是否比f2文件更新
f1 -ot f2
测试文件f1是否比f2更旧
① 条件语句:语法结构 1: if 表达式 then 命令表 fi 说明: - 如果表达式为真,则执行命令表中的命令;负责退出if语句,即执行fi后面的语句 - if和fi是条件语句的句号括号,必须成对使用 - 命令表中的命令可以是一条也可以是若干条 语法结构 2: if 表达式 then 命令表1 else 命令表1 fi - 如果表达式为真,则执行命令表1中的命令,再退出if语句;负责执行命令表2中的语句,再退出if语句
if [ $# -ne 1 ] #如果没有提供文件名的话则给用户提示 then echo 'usage:$0 filename' exit fi if [ -e $1 ] #测试文件是否存在 then echo '$1 not exit' exit fi if [ -L $1 ] #测试文件是否为一个链接文件 then echo 'l' elif [ -d $1 ] then echo 'd' elif [ -f $1 ] then echo '-' elif [ -b $1 ] then echo 'b' else echo 'd' fi
多路分支语句case用于多重条件测试,语法结构清晰自然。其语法为:case 字符串变量 in 模式1) 命令表1 ;; 模式2|模式3) 命令表2 ;; ...... 模式n) 命令表n ;; esac
echo -n 'please choose (yes|no)?' #-n是不换行 read R case $R in yes | y | Y | YES ) echo 'yes' ;; no | n | NO | N ) echo 'no' ;; *) echo 'wrong' esac
for 变量名 in 单词表 do 命令表 done
#方法一: SUM=0 for I in $(seq 0 2 100) #实现的功能是for(I=0;I<=100;I=I+2) do echo $I SUM=$SUM+$I done echo $[SUM] #方法二: SUM=0 for ((I = 1; I <= 100 ; I=I+2)) do echo $I SUM=$SUM+$I done echo $[SUM]
while 命令或表达式 do 命令行 done
while语句的退出状态为命令表中被执行的最后一条命令的退出状态SUM=0 I=100 while [ $I -ge 0 ] #判断变量I是否大于等于0 do SUM=$SUM+$I I=$(($I-2)) done echo $[SUM]
④循环控制语句break和continuebreak n #跳出n层 continue语句则马上转到最近一层循环语句的下一轮循环上。 continue n#转到最近n层循环语句的下一轮循环上
I=1 while [ $I -lt 5 ] do J=1 while [ $J -lt 5 ] do J=$(($J+1)) if [ $J -gt 3 ] then break 2 #跳出两层循环 fi echo "$I-$J" done I =$(($I+1)) done
如果我的博客对你有帮助、如果你喜欢我的博客内容,请“” “评论” “”
三连哦!听说的人运气不会太差
,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算