day12 bash中的if、for
bash
变量bash
定义:x=
作用:记录状态
规则:字母开头,后面可以接字母、数字、下划线
export args:将变量定义为全局变量
$$[]:括号中可以进行简单的数学整数运算,可以用echo打印出输出的结果
(()):两个括号中可以进行逻辑运算
$?:查看上次命令执行结果,非零表示失败
==:判断
!=:不等于
&&:逻辑与
||:逻辑或
((x+=))/x=$[$x+]:x+1的运算
expr + :有空格,像当与1+
echo 'scale=2;1/3'|bc -l:取1/3的两位小数
echo 'scale=2;1/3'|bc -l|cut -d'.' -f2:取两位小数,用.将它分割,取第二部分
test向当与[ ]有空格:
中间加 -a and
-o or
= 测试左右字符串是否为空
!= 不等于
-eq 判断整数是否相等
-ne 不相等
-b 后面加文件名,判断文件是否存在且为块设备
-d 后面加文件名,判断文件是否为文件
-e 后面加文件名,判断文件是否为存在
-f 后面加文件名,判断文件是否为存在且为普通文件
-h 后面加文件名,判断文件是否为链接文件 前面加 -n 不为空即正确
-z 长度为零即为空
if判断
#!/bin/bash
read -d 'username: ' user
read -d 'paddword: ' password if [ $user = 'alex' -a $password = 'alex' ];then
echo 'login successful'
fi
while循环
#!/bin/bash oldboy_age= while : # :表示真
do
read -p 'age: ' age if [ -z $age ]
then
echo 'None!!'
continue
fi if [ $age -eq $oldboy_age ]
then
echo 'Done'
break
elif [ $age -lt $oldboy_age ]
then
echo 'Too young'
elif [ $age -gt $oldboy_age ]
then
echo 'Too old'
else
echo 'Wrong!!'
fi
done
for循环
for 循环形式
#!/bin/bash for i in {..}
do
echo $i
done =========================================================
ping -c1 192.168.. ping 一次
ping -c1 192.168.. &> /dev/null 不在终端显示
tail -f /tmp/.. 动态查看地址 for i in $(ls)
do
# 依次打印出目录
done
======================================================== bash for 循环形式
#!/bin/bash for ((i=;i<=;i++))
do
echo $i
done
=======================================================
打印格式
echo -n '' 不换行
检测IP
ping IP
#!/bin/bash ip_head='192.168.16.' # 设置ip前面三位 for ((i=;i<=;i++)) # 循环20次,因为有点慢,所以循环少点
do # 循环开头标志
echo "$ip_head$i" # 将ip前面三位和i拼接起来
ping -c1 "$ip_head$i" &> /dev/null # ping IP,将打印结果丢弃
if [ $? -ne ] # 查看上面ping的结果,是否成功
then # if判断开头的标志
echo 'sucessful' # 如果ping不通,则打印成功,表示可用
fi # if判断的结尾标志
done
99乘法表
#!/bin/bash for((i=;i<=;i++)) # 外循环9次
do
for((j=;j<=i;j++)) # 内循环为1-9次
do
echo -n "$j*$i=$[j*i] " # 列式子,-n表示不回车,后面用空格分割
done
echo
done
模拟终端控制
#!/bin/bash while : # :表示真
do
read -p '>>' cmd # 获取一个输入
if [[ -z $cmd ]] # 如果为空,执行下面then
then
continue # 进入下一次循环
elif [[ $cmd='quit' ]] # 如果cmd的值为quit
then
break # 跳出本次循环
fi
$cmd # 执行变量cmd里面的命令
done
day12 bash中的if、for的更多相关文章
- Bash 中的 $0 在什么时候不是 argv[0]
每个 C 程序都有一个 main 函数,每个 main 函数都有一个 argv 参数,这个参数是一个字符串数组,这个数组的值是由该 C 程序的父进程在通过 exec* 函数启动它时指定的. 很多人说 ...
- Bash中的任务(job)管理
本来不准备写这篇博客的,因为任务管理(job管理)非常非常常用,以至于觉得根本没有必要去写这样一个东西.但想了下,还是记录一下吧,也许有人会用到呢. 不知你是否碰到过这样的情况,当你兴致勃勃的打开VI ...
- bash中不可以用字符串做数组下标
bash中可以用字符串做数组下标吗例如 test["abc"]=1------解决方案-------------------- 好像是误会,是awk里可以,bash shell里不 ...
- Linux bash 中,如何将正常信息和错误信息输出到文件
问题描述: $ command 2>> error $ command 1>> output 是否有方法,在bash同一行,实现输出stderr到error文件,输出stdou ...
- bash 中的变量
bash 中的变量 Linux command line 笔记 变量无需声明,自动创建 var=abc #变量a赋值为字符串abc var="hello world" #字符串里有 ...
- Bash中的shopt选项
Bash中的shopt选项 http://blog.chinaunix.net/uid-20587169-id-1919110.html shopt命令用于显示和设置shell中的行为选项,通过这些选 ...
- bash中一些基础知识
bash是linux操作系统的shell.以下是Multi-Perspective Sentence Similarity Modeling论文实现时碰到的一个bash: #!/bin/bash py ...
- Bash中的位置参数和特殊参数
#Bash中的位置参数和特殊参数 #Bash中的位置参数是由0以外的一个或多个数字表示的参数.#位置参数是当Shell或Shell函数被引用时由Shell或Shell函数的参数赋值,并且可以使用Bas ...
- bash中的数值运算
第一种,使用((表达式)): a=3 ((b=a+2)) echo $b 第二种使用let: let "c=$a+4" echo $c 第三种,使用expr表达式(注意空格不能少) ...
随机推荐
- Pytest初体验
Pytest安装,导入相关依赖哭 Pip3 install –U pytest U表示升级 Pip3 install pytestsugar pip3 install pytest-rerunfail ...
- VUE 中 使用 iview Form组件 enter键防止页面刷新
<Form :label-width="100" inline label-position='left' @keydown.native.enter.prevent =&q ...
- CentOS7.6下安装Oracle JDK
注:本教程使用XShell ssh到CentOS服务器,并使用root用户登录,如使用其他普通用户登录,请在命令前加sudo 1).在/usr/local/目录下(看个人情况)新建文件夹java用来存 ...
- linux 套接字
三.命名套接字 之前的socket只是创建了一个没有名字的资源,其他进程无法访问他.所以也无法从它接受消息.只有当bind给套接字绑定了端口和名字后,其他进程才能找到它. 一般服务器是一定要bind, ...
- 1.Struts2快速入门
Struts2是一个基于MVC设计模式的Web层框架 Web层框架的特点:前端控制器模式 快速入门 1.下载Struts2的框架包 https://struts.apache.org/ 2.导入jar ...
- JavaScript ---- 闭包(什么是闭包,为什么使用闭包,闭包的作用)
经常被问到什么是闭包? 说实话闭包这个概念很难解释.JavaScript权威指南里有这么一段话:“JavaScript函数是将要执行的代码以及执行这些代码作用域构成的一个综合体.在计算机学术语里,这种 ...
- swiper缩略图active切换失灵的解决思路
报错信息:Cannot read property ‘indexOf’ of undefined swiper. 来源是swiper.min.js,首先检查自己写的js配置是否有误,没有就调试插件源代 ...
- Delphi StringGrid常用属性和常用操作
StringGrid组件用于建立显示字符串的网格,与电子表格相似.它可使表格中的字符串和相关对象操作简单化.StringGrid组件提供了许多可控制网格外观念的属性,以及利用表格的结构响应用户操作的事 ...
- 7.12模拟T2(套路容斥+多项式求逆)
Description: \(n<=10,max(w)<=1e6\) 题解: 考虑暴力,相当于走多维格子图,不能走有些点. 套路就是设\(f[i]\)表示第一次走到i的方案数 \(f[i] ...
- Delphi做异型窗体PNG透明
{*******************************************************}{ }{ 异形窗口 }{ }{ 2009.12.4 王 锐 }{ }{******** ...