博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
菜鸟学Linux 第018篇笔记 字符测试&&for循环&&脚本
阅读量:6219 次
发布时间:2019-06-21

本文共 1872 字,大约阅读时间需要 6 分钟。

菜鸟学Linux 第018篇笔记 字符测试&&for循环

字符测试:

== 测试字符串是否相等 等为真,不等为假

A=hello B=hi

[[ $A == $B ]]

!= 测试字符串是否不等 不等为真,等为假

A=hello B=hello

[[ $A == $B ]]

>

<

单目操作符

-n 测试字符串是否为空,空则真,不空则假。

-s 测试字符串是否不空,不空为真,空为假。

循环

for

while

until

for循环

for 变量 in 列表; do

循环体

done

e.g.  for I in 1 2 3 4 5 6 7 8 9 10; do

加法运算

done

如何生成列表

整数列表

{1..100} 1-100

seq  print a sequence of numbers

e.g. `seq 10`

   SYNOPSIS

   seq [OPTION]... LAST

   seq [OPTION]... FIRST LAST

   seq [OPTION]... FIRST INCREMENT(增量,步进) LAST

declare -i  声名变量为整数    

   

小练习

script1

测试一个用户的用户ID和基本组ID是否一致;

script2

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

script3

传递三个参数给脚本,第一个为整数,第二个为算术运算符,第三个为整数,

将计算结果显示出来,要求保留两位小数,形如 ./calc.sh 5 / 2

script4

计算1..100的和

script5

向默认shell的bash的用户问声好,并显示该用户的家目录。

script6

给一个参数add则

添加10个用户user1到user10,但要求只有用户不存在的情况下才能添加。

给一个参数del则

删除10个用户user1到user10,但要求只有用户存在的情况下才能删除。

key:

script1

#!/bin/bash

#

if [ `id -nu $1` == `id -ng $1` ]; then

  echo "Yi yang."

else

  echo "Bu yiyang."

fi

script2

#!/bin/bash

#

if [ $1 = 'Q' ];then                

  exit 5

else

   echo $1

fi

script3

#!/bin/bash

#

#echo "scale=2;$1$2$3;" | bc

bc <<< "scale=2;$1$2$3;"

script4

#!/bin/bash

#

declare -i SUM=0

for I in {1..100}; do

  let SUM=$[$SUM+$I]

done

echo "1 + 100 = $SUM"

script5

#!/bin/bash

#

declare -i S=0

for I in `grep "bash\>" /etc/passwd | cut -d: -f1`; do

let S=S+1

HOOOM=`grep "bash\>" /etc/passwd | cut -d: -f6 | head -n $S | tail -1`  

echo "hello, $I. your home directory is $HOOOM"

done

script6

#!/bin/bash

#

if [[ $1 = "add" ]];then 

  for I in `seq 10`; do

! id user$I &> /dev/null && useradd user$I

  done

  echo "The user1-10 is added."

elif [[ $1 = "del" ]];then

  for L in `seq 10`; do

id user$L &> /dev/null && userdel -r user$L

  done

  echo "Delete user1-10 is complete."

else 

  echo "No such parameter"

  exit 10

fi

编辑脚本错误总结:

1.if语句后边的条件一定要和if之间空一格;

2.字符测试时要双括号如[[ $1 == "abc" ]]

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1863903如需转载请自行联系原作者

Winthcloud

你可能感兴趣的文章
SQL删除重复数据方法
查看>>
C#资源文件与与资源名称字符串之间的互相转化
查看>>
[Unity][Heap sort]用Unity动态演示堆排序的过程(How Heap Sort Works)
查看>>
调试项目出错------360云盘同步搞的鬼
查看>>
sqlite建表语句(特别是外键问题)
查看>>
Android 刷新下拉控制 SwipeRefreshLayout
查看>>
Android 自定义View修炼-打造完美的自定义侧滑菜单/侧滑View控件(转)
查看>>
持久化框架Hibernate 开发实例(一)
查看>>
CentOS下php安装mcrypt扩展
查看>>
2015.10.14-TransactionScope测试
查看>>
Android中MediaMuxer跟MediaCodec用例
查看>>
缓冲区的运用
查看>>
细谈WEB标准
查看>>
经典SQL
查看>>
Gitweb 安装与配置
查看>>
Microsoft.Net中数字签名技术
查看>>
iOS-iOS8模拟器设置中文键盘
查看>>
关于cocos2dx手游lua文件加密的解决方式
查看>>
分布式事务处理模型
查看>>
CSS实现限制显示的字数,超出显示"..."
查看>>