testerhome学习笔记3_Bash应用一

逻辑控制

1. if结构:if [ condition ] ; then ...; else...; elif...; fi.     ( fi做为结尾)

   简单的if逻辑可以用&& ||去代替:a&&b||c;    &&前面的命令执行成功为真,才会执行&&后面的命令,||前面的命令执行失败,为假,才会执行||后面的命令 , 例如:echo "1"&&echo "2"||echo "3"&&echo "4"||echo "5"||echo "6"&&echo "7"&&echo "8"||echo "9"

 

 2.For循环:for((c1;c2;c3));do....;done

  

  

 for的遍历循环:for x in ${array[@]};do...;done

 

 3.while循环:while read line;do echo $line;done < file;(<是输入重定向;>是输出重定向;read是个读入键盘的命令)

 

 

4.退出控制:

   break:退出当前循环,默认为1

   break 2:退出两层循环

   contiune:跳出当前循环,进入下一次循环

   contiune 2: 跳出上层循环的下一次循环中

   return:函数返回

   exit:脚本退出 

 

 

Bash运行环境

 1.shell运行环境

    bash是一个进程,bash下还可以再重新启动一个shell,这个shell是sub shell,原shell会复制自身给他

    在sub shell 中定义的变量,会随着sub shell 的消亡而消失

 

  ()是在子sehll中运行的,()中内容执行完毕后,子shell消亡

 

 {}是在当前shell中运行的

&&当前脚本执行的pid

&后台执行

 

&!运行在后台的最后一个作业的PID

 

jobs:查看进程状态

 

ctrl +z:暂停程序执行 

bg 1:继续执行暂停执行的程序1

fg 1:j将暂行的后台程序放到前台继续执行

 

 2.shell环境变量

修改profile文件(如果不能修改需要chmdo 777 profile),添加export PATH=$PATH:/home/liyuanyuan/test/....

保存退出

生效文件:source /etc/profile

set:可以获得当前所有变量

3.shell输入输出

a.read用来读取输入,并赋值给变量

b.echo, printf可以简单暑促变量

c.echo "hello to testerhome">file,将输出重定向到文件file,等价于tee.     >重定向会覆盖掉原来文件的所有内容

d.echo "from liyuanyuan">>file, 表示追加, 等价于tee -a

 

f. <file输入重定向

g. |表示管道,也就是前一个命令传入下一个名的输入

h. grep

 grep -i :忽略大小写进行匹配

 grep -o:只显示匹配到的内容

 

grep -o "c.":显示匹配到内容后面一个字符

 grep -o "c.*":显示匹配到内容后面任意字符

 

PS:

1.创建脚本的命令:touch hello.sh

2.搜索输入过的命令:ctrl+r

3.查看所有输入过的命令:history

4.跳转到指令的结尾:ctrl +e,跳转到指令的开头:ctrl +a

5.ctrl +c中断程序

6.read -p "enter":-p为显示提示语“enter”

7.echo *:默认打印当前目录所有文件 

8.echo $$:显示当前进程号

9.ps -ef:显示所有进程的全格式

  ps -e:显示全部进程

 

posted @ 2018-12-12 18:22  viviianli  阅读(208)  评论(0编辑  收藏  举报