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的更多相关文章

  1. Bash 中的 $0 在什么时候不是 argv[0]

    每个 C 程序都有一个 main 函数,每个 main 函数都有一个 argv 参数,这个参数是一个字符串数组,这个数组的值是由该 C 程序的父进程在通过 exec* 函数启动它时指定的. 很多人说 ...

  2. Bash中的任务(job)管理

    本来不准备写这篇博客的,因为任务管理(job管理)非常非常常用,以至于觉得根本没有必要去写这样一个东西.但想了下,还是记录一下吧,也许有人会用到呢. 不知你是否碰到过这样的情况,当你兴致勃勃的打开VI ...

  3. bash中不可以用字符串做数组下标

    bash中可以用字符串做数组下标吗例如 test["abc"]=1------解决方案-------------------- 好像是误会,是awk里可以,bash shell里不 ...

  4. Linux bash 中,如何将正常信息和错误信息输出到文件

    问题描述: $ command 2>> error $ command 1>> output 是否有方法,在bash同一行,实现输出stderr到error文件,输出stdou ...

  5. bash 中的变量

    bash 中的变量 Linux command line 笔记 变量无需声明,自动创建 var=abc #变量a赋值为字符串abc var="hello world" #字符串里有 ...

  6. Bash中的shopt选项

    Bash中的shopt选项 http://blog.chinaunix.net/uid-20587169-id-1919110.html shopt命令用于显示和设置shell中的行为选项,通过这些选 ...

  7. bash中一些基础知识

    bash是linux操作系统的shell.以下是Multi-Perspective Sentence Similarity Modeling论文实现时碰到的一个bash: #!/bin/bash py ...

  8. Bash中的位置参数和特殊参数

    #Bash中的位置参数和特殊参数 #Bash中的位置参数是由0以外的一个或多个数字表示的参数.#位置参数是当Shell或Shell函数被引用时由Shell或Shell函数的参数赋值,并且可以使用Bas ...

  9. bash中的数值运算

    第一种,使用((表达式)): a=3 ((b=a+2)) echo $b 第二种使用let: let "c=$a+4" echo $c 第三种,使用expr表达式(注意空格不能少) ...

随机推荐

  1. runtime和runloop问答

    Runtime 01 问题: objc在向一个对象发送消息时,发生了什么? 解答: 根据对象的 isa 指针找到类对象 id,在查询类对象里面的 methodLists 方法函数列表,如果没有在好到, ...

  2. yes - 不断输出一个字符串,直到杀死其为止

    SYNOPSIS(总览) yes [OPTION]... [STRING]... DESCRIPTION(描述) 不断输出包括所有指定STRING(s)的一行,或者是`y'. --help 显示帮助并 ...

  3. CSIC_716_20191127【组合,封装、类的私有属性方法、property装饰器】

    组合 what?   组合是指一个对象中,包含另一个或多个对象. why?      减少代码的冗余. How?     在类中加入其他类的对象,实现跨类对象之间的联动. 耦合度  软件设计要 高内聚 ...

  4. Jenkins 搭建 .NET Core 持续集成环境

    关于c#的.Net FrameWork 的集成环境以及MsBuild的配置可以看     jenkins搭建.NET FrameWork持续集成环境 这篇文章     关于.NET Core 这个项目 ...

  5. SQLServer2008上的SDE备份和还原

    一.备份 右键数据库>任务>备份.选择完整模式,导出为xxx.bak文件即可. 二.还原 1.创建sde用户名,新建同名数据库xxx,并指定sde为xxx的拥有者. 2.在master上创 ...

  6. 【转载】带你吃透RTMP

    RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing) ...

  7. nlp总结

    中科院nlpir和海量分词(http://www.hylanda.com/)是收费的. hanlp:推荐基于CRF的模型的实现~~要看语料,很多常用词会被分错,所以需要词库支撑.目前最友好的开源工具包 ...

  8. LeetCode 24. Swap Nodes in Pairs (两两交换链表中的节点)

    题目标签:Linked List 题目给了我们一组 linked list,让我们把每对nodes 互换位置. 新键一个dummy node,然后遍历list,每次建立 s1 和 s2 记录两个点,然 ...

  9. 8、collection

    collection 可以理解为一个容器 组织业务逻辑 导入导出 监控或者mock server 实例: 1.新建一个collection,命名为v2ex 2.保存1个请求到v2ex 3.选中v2ex ...

  10. OCP—051试题

    FROM: http://blog.itpub.net/26736162/viewspace-1252569/?page=2 http://blog.csdn.net/elearnings/artic ...