linux shell编程学习笔记(5)shell运算符号和运算命令

一、shell运算符号
1、加法 +
——expr 43+21 、expr $x + $y
2、减法 -
——expr 43 - 21 、expr $x - $y

3、乘法 \*
——由于 * 在Shell命令行中当通配符用需要用转义符号
——expr 43 \* 21 、expr $x \* $y

4、除法 /
——只给出结果的整数部分(并不是四舍五入)
——expr 43 / 21 、expr $x / $y

5、取余(求模运算) %
——求模运算常用来判断一个数是否为另一个数的倍数。
——expr 43 % 21 、expr $x % $y
6、自增
1)i++
—— i=i+1
[root@ndbB ~]# i=1
[root@ndbB ~]# echo $[i++] //先赋值给表达式,然后再递增1
1 //此时输出的值是递增之前的X
[root@ndbB ~]# echo $i //确认X的值
2 //此时输出的值是递增之后的X

2)i+=2
—— i=i+2
7、自减
1)i--
—— i=i-1
2)i-=2
—— i=i-2
8、自乘
1)i*=2
—— i=i*2
9、自除
1)i/=2
—— i=i%2

二、shell运算命令
1、expr
——只能做整数运算,自动返回运算结果
格式:expr整数1 运算符整数2

2、$[]或$(())
——需要使用echo输出结果,运算类型与expr类似
——乘法 * 不用加转义符号
——使用变量时,直接指定变量名,不用加$
格式:#echo $[ 整数1 运算符整数2 ]
或 #echo $(( 整数1 运算符整数2 ))
3、let
——操作变量值,只运算,不输出结构
——若要查看结果,需借助echo命令

合集下载

shell变量运算方式

shell变量运算方式

shell变量运算方式
Shell变量可以进行运算的方式有以下几种:1. 使用expr命令进行数学运算。

expr命令可以进行加减乘除、取余等基本的数学运算。

例如,可以使用
`result=(expr a + b)`来将变量a和b的值相加并将结果保存在变量result中。

2. 使用(( ))进行算术运算。

在(( ))中可以使用基本的算术运算符进行数学运算,如+、-、*、/等。

例如,可以使用`result=((a + b))`将变量a和b的值相加并将结果保存在变量result中。

3. 使用let命令进行算术运算。

let命令是Bash Shell 提供的一个内置命令,可以直接进行算术运算。

例如,可以使用`let result=a+b`将变量a和b的值相加并将结果保存在变量result中。

4. 使用declare命令进行算术运算。

declare命令可以用来声明变量的类型,同时也可以进行算术运算。

例如,可以使用`declare -i result`来声明result为整型变量,然后使用
`result=a+b`将变量a和b的值相加并将结果保存在变量result中。

5. 使用bc 命令进行高精度计算。

bc命令是一个任意精度计算工具,可以进行高精度的数学运算。

可以使用echo命令将运算表达式传递给bc命令,并使用( )将bc命令的输出保存到变量中。

例如,可以使用`result=(echo "scale=2; a + b" bc)`将变量a和b的值相加并将结果保存在变量result中,保留小数点后两位。

Shell脚本及linux命令学习

Shell脚本及linux命令学习

Shell脚本及linux命令学习∙echo "内容" |mail -s "标题" "收件人"mail [邮箱] <<EOF;OOXX(内容)EOF #结束符∙在屏幕直接按照制定格式输出cat << EOFooxx(内容)EOF∙AWK介绍:{}内视为一个原子操作,以“;”分隔命令,顺序进行∙hostname 命令:显示主机名;hostname -s 显示主机名(不完整)-i IP地址* whoami 显示当前用户名∙pstree work 查看当前进程及线程数∙rz,sz:用SecurtCRT时,linux与客户端间传文件∙echo $PATH:查看自己有权限的bin目录∙du -s,-sm,-sk:查看文件夹大小∙sar:linux性能检测工具∙awk的OFS:echo a b c d | awk 'BEGIN {OFS=":"} {print $1, $2, $3, $5}'a:b:c:d (替换分隔符)∙tar xfj (.bz2) tar czvf(打包)xzvf(解包)(.tar.gz)(.tgz)∙xxd命令:查看二进制文件∙teeprot.pl:截包、转发、中转工具-l -r -f∙seekone:∙wget -r -nd(不下载目录结构)--limit-rate==2M ftp://tc...//home/...∙time:计算执行时间∙uname 显示当前操作系统名称∙file:辨识文件类型∙ldd:用来查看程序运行所需的共享库,常用来解决程序因缺少某个库文件而不能运行的一些问题∙set:不带任何参数的set命令将显示shell的全部变量。

∙export:设置环境变量∙unset:清楚环境变量∙mkdir -p:创建上层目录,如mkdir -p /home/work/lixiaowen/123/456∙vi中段注释:开头行添加<<BLOCK,结尾行BLOCK∙vi中打开多个文件:在vi中输出sp ,vi -o ...∙Linux的五个查找命令:find,locate,whereis,which,type 网上找的说明∙sudo:限制版本的su。

Linuxshell算数运算and条件判断

Linuxshell算数运算and条件判断

Linuxshell算数运算and条件判断1.算数运算采⽤ $(())来标⽰,要不然,2.常见的运算符都可以在(())⾥⾯来写进去(+ - * / %)3.10转16进制haha=`echo 123456|awk '{printf "%x\n",$0}'`4.if 条件测试我们⼀般在shell中会利⽤⼀种更强⼤的if条件判断,即 if [] 格式。

下⾯附上 if [] 格式的测试选项:–b 当file存在并且是块⽂件时返回真-c 当file存在并且是字符⽂件时返回真-d 当pathname存在并且是⼀个⽬录时返回真-e 当pathname指定的⽂件或⽬录存在时返回真-f 当file存在并且是正规⽂件时返回真-g 当由pathname指定的⽂件或⽬录存在并且设置了SGID位时返回为真-h 当file存在并且是符号链接⽂件时返回真,该选项在⼀些⽼系统上⽆效-k 当由pathname指定的⽂件或⽬录存在并且设置了“粘滞”位时返回真-p 当file存在并且是命令管道时返回为真-r 当由pathname指定的⽂件或⽬录存在并且可读时返回为真-s 当file存在⽂件⼤⼩⼤于0时返回真-u 当由pathname指定的⽂件或⽬录存在并且设置了SUID位时返回真-w 当由pathname指定的⽂件或⽬录存在并且可执⾏时返回真。

⼀个⽬录为了它的内容被访问必然是可执⾏的。

-o 当由pathname指定的⽂件或⽬录存在并且被⼦当前进程的有效⽤户ID所指定的⽤户拥有时返回真。

UNIX Shell ⾥⾯⽐较字符写法:-eq 等于-ne 不等于-gt ⼤于-lt ⼩于-le ⼩于等于-ge ⼤于等于-z 空串= 两个字符相等!= 两个字符不等-n ⾮空串更为详细的说明:运算符描述⽰例⽂件⽐较运算符-e filename 如果 filename 存在,则为真 [ -e /var/log/syslog ]-d filename 如果 filename 为⽬录,则为真 [ -d /tmp/mydir ]-f filename 如果 filename 为常规⽂件,则为真 [ -f /usr/bin/grep ]-L filename 如果 filename 为符号链接,则为真 [ -L /usr/bin/grep ]-r filename 如果 filename 可读,则为真 [ -r /var/log/syslog ]-w filename 如果 filename 可写,则为真 [ -w /var/mytmp.txt ]-x filename 如果 filename 可执⾏,则为真 [ -L /usr/bin/grep ]filename1 -nt filename2 如果 filename1 ⽐ filename2 新,则为真 [ /tmp/install/etc/services -nt /etc/services ] filename1 -ot filename2 如果 filename1 ⽐ filename2 旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ] 字符串⽐较运算符(请注意引号的使⽤,这是防⽌空格扰乱代码的好⽅法)-z string 如果 string 长度为零,则为真 [ -z $myvar ]-n string 如果 string 长度⾮零,则为真 [ -n $myvar ]string1 = string2 如果 string1 与 string2 相同,则为真 [ $myvar = one two three ]string1 != string2 如果 string1 与 string2 不同,则为真 [ $myvar != one two three ]算术⽐较运算符num1 -eq num2 等于 [ 3 -eq $mynum ]num1 -ne num2 不等于 [ 3 -ne $mynum ]num1 -lt num2 ⼩于 [ 3 -lt $mynum ]num1 -le num2 ⼩于或等于 [ 3 -le $mynum ]num1 -gt num2 ⼤于 [ 3 -gt $mynum ]num1 -ge num2 ⼤于或等于 [ 3 -ge $mynum ]。

Linux中通过shell进行数据计算

Linux中通过shell进行数据计算

Linux中通过shell进⾏数据计算在bash shell中可以利⽤let、(())和[]执⾏基本呢的算数运算。

⽽在进⾏⾼级操作时,可以利⽤expr和bc两个⼯具进⾏计算。

1、let命令可以直接执⾏基本的算数计算。

当使⽤let时,变量名之前不许要再添加$。

let result=num1+num2#!/bin/basha=5b=6let result=a*becho $resultlet result*=result #注意此⾏,变量与符号之间不能有空格echo "the result is $result"结果为30the result is 9002、操作符[]的使⽤⽅法和let命令相似。

result=$[num1+num2 ]注意等号两边不能有空格在[]中也可以⽤$前缀。

#!/bin/basha=5b=6result=$[a+b ]echo "The result is $result"result=$[$a+$a ]echo "the result is $result"结果为The result is 11the result is 103、使⽤(())也可以进⾏计算,但在使⽤(())时,变量名前需要加上$.result=$((num1 +num2 ))#!/bin/shnum1=5num2=6result=$((num1+num2))echo "the result is $result"结果为:the result is 114、expr同样可以⽤于基本的数据操作result=`expr4+5`result=$(expr$num1+2)实例:#!/bin/shnum1=5num2=6result=$(expr$num1 + $num2) #注意$num1和$num2与+之间⼀定要有空格echo "the result is $result"结果为:the result is 11以上这些⽅法只能⽤与整数的计算,⽽不⽀持浮点数的计算。

Shell初学(六)LinuxShell时间运算以及时间差计算方法

Shell初学(六)LinuxShell时间运算以及时间差计算方法

Shell初学(六)LinuxShell时间运算以及时间差计算⽅法Linux Shell 时间运算以及时间差计算⽅法时间的加减,以及时间差的计算。

1。

时间加减这⾥处理⽅法,是将基础的时间转变为时间戳,然后,需要增加或者改变时间,变成秒。

如:1990-01-01 01:01:01 加上 1⼩时 20分处理⽅法:a.将基础时间转为时间戳time1=$(date +%s -d '1990-01-01 01:01:01')echo $time1631126861【时间戳】b.将增加时间变成秒[root localhost ~]# time2=$((1*60*60+20*60))[root localhost ~]# echo $time24800c.两个时间相加,计算出结果时间time1=$(($time1+$time2))time1=$(date +"%Y-%m-%d %H:%M:%S" -d "1970-01-01 UTC $time1 seconds");echo $time11990-01-0102:21:01#如果是分钟,则可以把 seconds换成minutes,天则可以换成 days ,星期换成weeks,⽉换成months,年换成years#这个UTC关键词也可以不写2。

时间差计算⽅法如:2010-01-01 与 2009-01-01 11:11:11 时间差原理:同样转成时间戳,然后计算天,时,分,秒time1=$(($(date +%s -d '2010-01-01') - $(date +%s -d '2009-01-01 11:11:11')));echo time1将time1 / 60秒,就变成分了。

补充说明:shell 单括号运算符号:a=$(date);等同于:a=date;双括号运算符:a=$((1+2));echo $a;等同于:a=expr1 + 2附录:Linux date命令可以⽤来显⽰或设定系统的⽇期与时间,在显⽰⽅⾯,使⽤者可以设定欲显⽰的格式,格式设定为⼀个加号后接数个标记,其中可⽤的标记列表如下:时间⽅⾯:% : 印出 %%n : 下⼀⾏%t : 跳格%H : ⼩时(00..23)%I : ⼩时(01..12)%k : ⼩时(0..23)%l : ⼩时(1..12)%M : 分钟(00..59)%p : 显⽰本地 AM 或 PM%r : 直接显⽰时间 (12 ⼩时制,格式为 hh:mm:ss [AP]M)%s : 从 1970 年 1 ⽉ 1 ⽇ 00:00:00 UTC 到⽬前为⽌的秒数%S : 秒(00..61)%T : 直接显⽰时间 (24 ⼩时制)%X : 相当于 %H:%M:%S%Z : 显⽰时区⽇期⽅⾯:%a : 星期⼏ (Sun..Sat)%A : 星期⼏ (Sunday..Saturday)%b : ⽉份 (Jan..Dec)%B : ⽉份 (January..December)%c : 直接显⽰⽇期与时间%d : ⽇ (01..31)%D : 直接显⽰⽇期 (mm/dd/yy)%h : 同 %b%j : ⼀年中的第⼏天 (001..366)%m : ⽉份 (01..12)%U : ⼀年中的第⼏周 (00..53) (以 Sunday 为⼀周的第⼀天的情形)%w : ⼀周中的第⼏天 (0..6)%W : ⼀年中的第⼏周 (00..53) (以 Monday 为⼀周的第⼀天的情形)%x : 直接显⽰⽇期 (mm/dd/yy)%y : 年份的最后两位数字 (00.99)%Y : 完整年份 (0000..9999)若是不以加号作为开头,则表⽰要设定时间,⽽时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为⽉份,DD 为⽇,hh 为⼩时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数。

Shell入门-Shell变量数值计算

Shell入门-Shell变量数值计算

Shell⼊门-Shell变量数值计算Shell变量数值计算算术运算符Shell中常见的算术运算符号+:加法-:减法或负号*:乘法/:除法%:取余**:幂运算++:增加--:减少!:逻辑⾮&&:逻辑与||:逻辑或< <= > >=:⽐较符号== != =:⽐较符号,对于字符串“=”也可以表⽰相当于<< >>:向左移位、向右移位~:按位取反|:按位异或&:按位与^:按位或= += -= *= /= %=:赋值运算算术运算命令(()):⽤于整数运算let:⽤于整数运算,类似于(())expr:⽤于整数运算bc:适合整数及⼩数运算$[]:⽤于整数运算awk:适合整数及⼩数运算declare:定义变量值和属性(())双⼩括号(())的作⽤是进⾏数值运算与数值⽐较。

简单的数值运算:[root@localhost shell]# echo $((1+1))2[root@localhost shell]# echo $((6-3))3[root@localhost shell]# ((i=5))[root@localhost shell]# ((i=i*2))[root@localhost shell]# echo $i10[root@localhost shell]#复杂的综合运算[root@localhost shell]# ((a=1+2**3-4%3))[root@localhost shell]# echo $a8[root@localhost shell]# b=$((1+2**3-4%3))[root@localhost shell]# echo $b8[root@localhost shell]# echo $((1+2**3-4%3))8[root@localhost shell]# a=$((100*(100+1)/2))[root@localhost shell]# echo $a5050[root@localhost shell]# echo $((100*(100+1)/2))5050[root@localhost shell]#特殊运算符号[root@localhost shell]# a=8[root@localhost shell]# echo $((a=a+1))9[root@localhost shell]# echo $((a+=1))10[root@localhost shell]# echo $((a**2))100⽐较及判断[root@localhost shell]# echo $((3<8))1[root@localhost shell]# echo $((8<3))[root@localhost shell]# echo $((8=8))-bash: 8=8: 尝试给⾮变量赋值(错误符号是 "=8")[root@localhost shell]# echo $((8==8))1[root@localhost shell]# if ((8>7&&5==5))> then> echo yes> fiyes[root@localhost shell]#++ --的使⽤,和Java中的类似[root@localhost shell]# a=10[root@localhost shell]# echo $a10[root@localhost shell]# echo $((a++))10[root@localhost shell]# echo $a11[root@localhost shell]# echo $((a--))11[root@localhost shell]# echo $a10[root@localhost shell]# echo $((++a))11[root@localhost shell]# echo $a11[root@localhost shell]# echo $((--a))10[root@localhost shell]# echo $a10[root@localhost shell]#总结:1. (())表达式在命令⾏执⾏时不需要加$符号,直接使⽤((6%2))形式即可,但是如果需要输出,就要加$符,例如:echo $((6%2))。

在shell中的7种数值计算方法

在shell中的7种数值计算⽅法引⾔1. Linux shell 中使⽤ let , [ ] ,(( )) 三种运算符操作 shell 变量进⾏简单的基本运算;2. Linux shell 中使⽤ expr 与 bc 两个程序实现⾼级运算;闲话不多叙,直接上好货!let法let命令是BASH中⽤于计算的⼯具,⽤于执⾏⼀个或多个表达式,变量计算中不需要加上$来表⽰变量。

如果表达式中包含了空格或其他特殊字符,则必须引起来。

[root@host]# i=1[root@host]# let i=i+2[root@host]# echo $i3[root@host]# let i--[root@host]# echo $i2[root@host]# let i+=1[root@host]# echo $i3[ ]法"[ ]" 运算符⾥⾯可以使⽤ $ 符号引⽤变量,同时⽀持变量名与运算符之间不带空格。

[root@host]# i=1[root@host]# i=$[$i+2][root@host]# echo $i3(( ))法" (( )) " 运算符跟 " [ ] " 运算符⼀样,⾥⾯可以使⽤$符号引⽤变量,同时⽀持变量名与运算符之间不带空格。

[root@host]# i=1[root@host]# i=$(($i+2))[root@host]# echo $i3expr法"expr"命令⽀持$符号引⽤变量进⾏基本运算,但是变量与运算符之间必须使⽤空格作为分隔符,且表达式外部不能⽤引号括起来,否则被作为字符串处理;[root@host]# i=1[root@host]#expr $1 + 23[root@host]#expr"$1+2"$1+2bc法bc 命令是任意精度计算器语⾔,通常在linux下当计算器⽤。

shell学习笔记LinuxShell脚本攻略(第2版)

shell学习笔记LinuxShell脚本攻略(第2版)1注释⽤#号;多条命令通过分号或回车来分隔2 echo会⾃动换⾏,若不想换⾏,则加上-n参数,如 echo -n "nice to meet you"grep 'test' d* 显⽰所有以d开头的⽂件中包含test的⾏。

scp sourecFile romoteUserName@remoteIp:remoteAddr 远程拷贝切换⽤户:su -usernametail -f exmaple.log 这个命令会⾃动显⽰新增内容,屏幕只显⽰10⾏内容的(可设置)。

netstat -tln | grep 8080 查看端⼝8080的使⽤情况或 netstat -antp | grep 8080查看指定进程打开的⽂件:lsof -p $pid 【lsof⼀般⽤来查看进程打开的⽂件:list open file】远程登录:ssh userName@ipecho后⾯的内容可以不带引号,可以带单引号,也可以带双引号1对于进程来说,其运⾏时的环境变量可以使⽤下⾯的命令来查看:cat /proc/$PID/environ2若输出的结果连在⼀起了,说明结果之间由null字符(\0)分隔,为了每个结果占⼀⾏,可以进⾏替换操作,如:cat /proc/12501/environ | tr '\0''\n'3注意, var = value不同于var=value。

把var=value写成var = value是⼀个常见的错误,但前者是赋值操作,后者则是相等操作。

4在变量名之前加上$前缀就可以打印出变量的内容5定义环境变量⽤export ;给已有环境变量追加值,也⽤export,如 export PATH="$PATH:/home/bin"6获取变量值的长度 # :echo ${#haha}整数运算:no1=4;no2=5[alauda@ip-10-140-10-186 temp]$ let cc=no1+no2[alauda@ip-10-140-10-186 temp]$ echo $cc9[alauda@ip-10-140-10-186 temp]$ zz=$[no1+no2][alauda@ip-10-140-10-186 temp]$ echo $zz9⽂件描述符echo "sdfsdf">bb 覆盖式写⼊,⽂件⾥原来的东西会被清空echo "what's wrong" >>bb 追加式写⼊============定义数组:sdf=(11 22 33) ----元素之间通过空格分隔访问所以成员:echo ${sdf[*]}打印数组长度:echo ${#sdf[*]}=========调试========打印出所执⾏的每⼀⾏命令以及当前状态:/bin/bash -x aa.sh使⽤set -x和set +x对脚本进⾏部分调试:#!/bin/bashsdf=1echo $sdfset -xif [ $sdf = 1 ]thenecho "nice to meet you"set +xelseecho "not equal"fi=================函数6 #!/bin/bash7 myfun() ----定义函数10 echo $2;11return10;12 }13 myfun "aa""bb" ; --调⽤函数14 echo $? ---打印函数返回值===============从输⼊中读取n个字符并存⼊变量xx:read -n 3 xx⽤特定的定界符作为输⼊⾏的结束: read -d ";" xxecho -n 'ni;hao;ma;' |xargs -d ';'ni hao ma=====================如将分隔符定义成换号符:IFS=$OLDIFS将字符串⽤逗号分隔,逐个打印 IFS存放的是定界符,aiya(){echo $1;OLDIFS=$IFS;IFS=",";for item in $1;doecho item:$item;doneIFS=$OLDIFS;echo "over over";}aiya "ni,hai,hao,ma"结果:ni,hai,hao,maitem:niitem:haiitem:haoitem:maover over================循环若在if后⾯放的不是命令,则要通过test或 [ ] 实现,如判断变量是否有值、判断是否相等,都需要[] myfun(){item=""if [ $item ] --------[] 第⼀个⽅括号之后和第⼆个⽅括号之前必须加上⼀个空格thenecho "have"elseecho "not have"fi}输出是 not haveaiya(){echo $1;if [ $1 == 21 ]thenecho '11111';elif [ $1 == 2 ]thenecho '22222'fi}aiya 12 ; ---调⽤myfun(){for item in $1;doecho $itemdoneecho "ooooooooo"}==========条件语句=================[ $1 == 1 ] && echo "success"===============添加⾏号:cat -n lines.txt忽略名字⼤⼩写进⾏查找:find . -iname aa*多条件查询:find . \( -name "*.txt" -o -name "*.sh" \)⽤“!”否定参数的含义:find . ! -name "*.sh"只对当前⽬录进⾏查找:find . -maxdepth 1 -name "*.txt"-atime、 -mtime、 -ctime 的单位是天,- 表⽰⼩于, + 表⽰⼤于-amin -mmin -cmin的单位是分钟删除查找到的匹配⽂件:find . -name "*.txt" -delete查找除zz⽬录之外的所有⽂件:find . \( -path "*zz*" -prune \) -o \( -type f -print \) find的常⽤参数:-name -path -maxdepth -type -mtime -size -delete=====================xargs擅长将标准输⼊数据转换成命令⾏参数将多⾏⽂本转换成单⾏⽂本:将单⾏输⼊转换成多⾏输出将cat的返回值逐⼀传给sh脚本: cat bb | xargs -n 1 ./hanshu.shcat bb | xargs -I {} ./hanshu.sh {}将cat的返回值和其他参数按顺序传给sh脚本:cat bb | xargs -I {} ./hanshu.sh -p {} -s 【-I {} 指定了替换字符串。

5实训五 Shell命令和功能

实训五Shell命令和功能一、实验目的1.熟悉Shell环境。

2.使用Shell的各种功能。

二、实验相关知识1.通配符“*”:表示任意长度的任何字符,不过不能匹配以“.”开头的文件,但可用.*来匹配。

2.通配符“?”:表示任何一个字符。

3.字符组通配符“[ ]”、“-”和“!”:[ ]表示指定的一个字符范围,而[ ]内任意一个字符都用于匹配,[ ]内的字符范围可以由直接给出的字符组成,也可以由起始字符“-”终止字符组成。

如果使用“!”表示不在这个范围内的其他字符。

4.自动补全当输入文件和命令时可不必把文件和命令输入完整,只输入前面几个字母就可以完成输入,利用tab键实现。

5.命令别名是其他命令的缩写,用来减少键盘输入,同时允许用户为命令取一个自己熟悉、习惯的名字,使用alias命令来实现设置和查看别名。

6.输入输出重定向:Linux的大部分命令都具有标准的输入/输出设备端口,共有3个设备端口,标准输出端口和标准错误端口输出的信息是通过屏幕显示的,标准输入端口通过键盘输入的。

所谓重定向,就是不通过屏幕显示,不通过键盘输入而进行重新指定。

重定向分为输出重定向、输入重定向、错误重定向,他们通常重定向到一个文件。

7.管道将多个命令前后连接起来形成一个管道,每一个命令单独运行,前一个命令的输出结果传送到后一个命令作为输入,从左到右依次执行,利用“|”符号实现。

三、实验内容1.通配符的使用。

2.命令补齐功能。

3.命令历史。

4.命令别名功能。

5.输入、输出重定向和管道。

四、实验准备一台已经安装好Fedora操作系统的主机。

五、实验步骤1.通配符的使用【操作要求1】显示/bin目录中所有以c为首字母的文件和目录。

【操作步骤】输入命令“ls /bin/c*”,屏幕将显示/bin目录中以c开头的所有文件和目录。

【操作要求2】显示/bin目录中所有以c为首字母,文件名只有4个字符。

【操作步骤】(1)按向上方向键,Shell命令提示符后出现上一步操作时输入的命令“ls /bin/c*”。

linux基础- shell编程


shell自定义变量
一个新的shell程序 #! /bin/sh #this is a shell program a=―hello world‖ a+=― hello linux‖ a=${a}"hello program" echo $a
Linux
1)shell程序自定义变量没有类型之分,默认为一串字符(注意等 号两边没有空格) 2)“+=”用于字符串追加 3)$变量名 /${变量名}:取变量的值
Linux
注:read 命令从标准输入中读取一行,并把输入行的每个字段的 值指定给 shell 变量
“break” and “continue”
Linux
为了避免死循环,可以在循环体中包含循环出口条件, 即存在expression的退出状态为非0的情况; 当然也可以才用“break” and “continue”来控制循环操
Linux
shell算术运算符之let命令
加法: n=10 let n=n+1 echo $n 乘法: let m=n*10 echo $m 除法: let r=m/10 echo $r 求余数: let r=m%7 echo $r 乘冪: let r=m**2 echo $r
Linux
&& 和 || 操作符
shell之循环结构while
#! /bin/bash # this is a shell program with while! echo "enter a number:" read var while [ $var != "quit" ] do echo "your input is : $var" read var done
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档