shell脚本编程之字符串测试及循环

==:两个字符串是否相等

!=:两个字符是否不等

>:某个字符串是否大于另一个字符串

<:某个字符串是否小于另一个字符串

-n string:测试指定字符串是否为空

-s string:测试指定的字符串是否不空

例如

判断用户名与组名是否一样

#!/bin/bash

if  ! id $1 &>/dev/null; them

echo”nouser”

exit

fi

if [ `id –n –u $1` == `id –n –u $1` ]; then

echo”ok”

else

echo”notok”

fi

写一个脚本

传递一个参数给脚本,如果参数为q或Q或quit就退出脚本,否则就显示用户的参数

#!/bin/bash

#判断脚本是否存在

if [ $1 = ‘q’ ]; then

echo “exit”

exit

elif [ $1 = ‘Q’ ]; then

echo”exit”

exit

elif [ $1 = ‘quit’ ]; then

echo”exit”

exit

elif [ $1 = ‘Quit’ ]; then

echo”exit”

exit

elsee

echo $1

fi

练习

传递3个参数给脚本,第一个为整数,第二个为算术运算符,第三个为,将计算结果显示出来保留2为精度,形如./calc.sh5 / 2

提示:计算使用bc命令,在bc中使用scale可以保留精度,利用echo“scale=2;111/22;” | bc,将其保留到某个变量中,直接引用

练习

写一个脚本,判断当前主句的CPU生产商,其信息在/proc/cpuinfo文件中evderid一行中

如果生产商为AuthenticAMD就显示为AMD公司,如果生产商为GenuineIntel就显示为Intel公司,否则就显示为非主流公司

练习

写一个脚本,给脚本传递3个整数,判读其中的最大数和最小数,并显示出来

可以设置一个变量MAX=0,然后让MAX与$1进行比较,若大于MAX则将$1的值赋给MAX,接着让MAX与$2进行比较,一次类推

练习

传递3个参数给脚本参数均为用户名,将这些用户的账号信心提取出来放置于/tmp/testusers.txt文件中,并要求每一行行首有行号

循环:指定进入条件退出条件

for循环

for 变量in 列表(变量中的数遍历了列表中的数则退出)

do

循环体

done

seq :[起始数步进数]结束数,这是个命令,要通过``引用命令结果

变量在开始的时候都是默认为字符串的

declare –I SUM=0:定义为整型

-x:定义为环境变量

#!/bin/bash

declare –i SUM=0

for I in (1..100)

do

letSUM=$[$SUM+$I];

done

echo”the sum is :$SUM”

练习

向系统中每个用户问好,即遍历每个用户

使用wc–l /etc/passwd

LINES=`wc–l /etc/passwd | cut –d’ ‘ –f1`

for I in `seq 1 $LINES`

do

echo “hell`head –n $I /etc/passwd | tail -1 | cut –d: -f1`”

done

写一个脚本

设定变量FIFE的值为/etc/passwd,一次想/etc/passwd中的每个用户问好并显示对方的shell,形如helloyourshell:/bin/bash,统计一共有多少个用户,并指向默认用户问好

写一个脚本

添加10个用户user1到user10,密码同用户名,但要求只有用户名不存在的情况下才能添加,扩展:接受一个参数add:添加用户user1…user10,del:删除用户user1…user10,其他的则退出

写一个脚本

计算100以内的所有能被3整除的正整数的和(取模,取余% 3%2=1)

写一个脚本

计算100以内的所有的奇数的和以及所有偶数的和,分别显示之

写一个脚本分别显示当前系统上的所有默认shell为bash的用户和默认shell为/sbin/nologin的用户,并统计各类shell下的用户总数显示结果形如

BASH,3users,they are:

root ,redhat,gentoo

NOLOGIN,2users,they are:

bin,ftp

时间: 2024-11-06 10:19:23

shell脚本编程之字符串测试及循环的相关文章

8.17_Linux之bash shell脚本编程入门篇(三)之循环以及函数function的使用

bash shell脚本编程入门篇(三)之循环 什么是循环执行? 将某代码段重复运行多次 重复运行多少次: 循环次数事先已知 循环次数事先未知 有进入条件和退出条件 相关命令:for, while, until,selet, for命令的使用 作用: 依次将列表中的元素赋值给"变量名"; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束 命令格式: for 变量名 in 列表; do 循环体(正常执行的执行命令) 语句1 语句2 语句3 ... done 列表生成方式: (

shell脚本编程之条件测试——test

test测试命令有三类测试表达式,第一类是进行数值的比较,第二类是进行字符串的比较,第三类是进行文件的测试,比如测试一个文件是否存在等. 1.数值测试,需要两个操作数进行比较 -eq:测试两个数据是否相等,相等为真,不等为假 -ne:被测试的两个数值是否不相等,不等为真,相等为假: -lt:被测试的两个数值,左边的是否小于右边的,小于为真,大于为假: -gt:被测试的两个数值,左边的是否大于右边的,大于为真,小于为假: -le:被测试的两个数值,左边的是否小于等于右边的: 总结一下就是:eq相等

第六课-第三讲06_03_bash脚本编程之五 字符串测试及for循环

1.字符测试1)==(=赋值用的):等号两侧引用变量的结果所以一个等号也可以自动判断出不是赋值,相等为真,不等为假.一定注意等号两侧一定要有空格.2)!= :测试是否不等,不等为真,等为假3)>4)<5)>=6)<=7)-n string :单目操作,测试字符串是否为空,空为真8)-s string :单目操作,测试字符串是否不空,不空为真 echo "scale=2;111/22;"|bcbc <<<"scale=2;111/22;

Shell脚本编程概述(一):算数运算和条件测试

一.shell脚本语言 1.编程语言的分类: (1)根据运行方式 编译运行:源代码 --> 编译器 (编译)--> 程序文件: 解释运行:源代码 --> 运行时启动解释器,由解释器边解释边运行: (2)根据其编程过程中功能的实现是调用库还是调用外部的程序文件: shell脚本编程:利用系统上的命令及编程组件进行编程: 完整编程:利用库或编程组件进行编程: (3)编程模型: 过程式编程语言:以指令为中心来组织代码,数据是服务于代码: 顺序执行.选择执行.循环执行:代表:C,bash 面向对

Linux中的shell脚本编程——数组 ,高级字符串操作 ,高级变量 ,配置用户环境

概述: 概述: 本章节将讲述Linux中shell脚本编程的数组,高级字符串处理,高级变量和配置用户的环境. 一.函数和位置参数扩展 1.shift 命令实现在位置参数中的跳跃,会把最左边的参数挤掉     2.匿名函数的使用 第一篇:数组 一.数组的定义: 1.变量:存储单个元素的内存空间 2.数组:存储多个元素的连续的内存空间,相当于多个变量的集合. 3.数组名和索引 索引:编号从0开始,属于数值索引 注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后开

Shell脚本编程知识点总结及范例

 一:关于语言 1)编译性语言 编译型语言多半运作于底层,所处理的是字节.整数.浮点数或其它及其机器层经的对象.处理过程为:源程序--预处理--编译--汇编--链接,编译性语言为静态语言. 2)解释性语言 解释性语言读入程序代码并将其转化为内部的形式加以执行.处理过程:解释性(文本文件)-解释器去读取并执行.解释性语言为动态语言. 二:基础 变量类型 linux脚本中的变量不需要事先声明,而是直接定义使用(这点不同于其他高级编程语言中变量的使用)bash变量类型分为本地变量和环境变量. 本地变量

Linux 的shell脚本编程

shell脚本编程 程序:指令+数据 程序编辑风格:             过程式:以指令为中心,数据服务于指令             对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 计算机:运行二进制指令 编程语言: 低级:汇编语言 高级:编译:高级语言-->编译器-->目标代码 java,c#,c,c++ 解释:高级语言-->解释器-->机器代码 shell,per,python 编程逻辑处理方式:           顺序执行      

shell脚本编程进阶练习题

这两天学习了shell脚本编程进阶,作为一枚文科生,小编觉得...恩..脚本很烧脑.....,不过小编还是做了些题,稍作总结后,呈给各位看官,内容如下: 一.条件选择if语句 选择执行: 注意:if语句可嵌套 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi 多分支 if 判断条件1; then 条件为真的分支代码 elif 判断条件2; then 条件为真的分支代码 elif 判断条件3; t

8.11_Linux之bash shell脚本编程入门篇(一)

什么是bash shell脚本编程? 答:Linux里面有多种shell,而CentOS和redhat的默认shell是bash shell.至于shell脚本,这个跟windows操作系统里面的批处理文件有点像(.bat的文件).不知道大家还是否记得Linux的哲学思想吗?其中有那么两点点:由众多目的的单一应用程序组成:一个程序只做一件事,且做好:组合目的的单一的小程序完成复杂的任务.我觉得shell脚本编程就很好的体现了这个哲学思想.shell脚本利用shell的功能缩写的一个"程序&quo