shell编程--第二天

来源:互联网 发布:ug10.0数控编程 编辑:程序博客网 时间:2024/04/29 09:07

ls -l dir1 | wc -l .

 1。while 条件  ;  do  done //(())  []  test
2。until同上,仅仅是条件不成立的时候才执行
3。/dev/null : unix 黑洞。 用于清空文件  cat /dev/null > xx    find -name a.txt 2>/dev/null
4。注意:陷阱题之continue跳出循环后,把打印的东东留在了缓冲区,结果一直都没有打印出来。
5。命令列表 && && | | | | ,后一个命令是否执行依赖于前一个命令的成功与否。
6。语句块{}: (ls "$1") && { echo "$1"  .......}
7。函数 1。function fun1{}  fun1(){}   注意:函数没有返回值,调用直接写函数名即可。( )中不允许出现行参,只能为空。    declare -f 查看所有滴函数
 shell的函数,对于shell来说是新的shell进程,如此传参:fun1 1 2 3 ,$0永久不变,$1之后的位置参数在函数内是局部的,外依旧是主程序的位置参数。
8。shell编程是在命令的基础上的,所以应该时刻想着以命令的格式来编写代码,不要搞错聊。
9。函数中的return 是返回的是:返回码,必须是int行,不能是其他的类型。最多255,0代表成果。如果val=$(fun),则取出来的是:函数所输出的东西。
10。shell中,任何命令都是有返回码的,而且必须有---因为默认就有。(以最后一句代码作为返回值)
11。加上( ) 表示在子shell中去执行,否则是在当前shell中执行。
12。如果非要函数有返回 ,那只能使用全局变量了,没别的办法了。可是,走运了,函数中的变量默认就是全局性的,加了local修饰的变量才是函数的局部变量了。

       $( fun ) 取出来的是:echo打印出来的东西,并不是return 值。
13。普通的调用函数是不会启动新的进程的。调用shell会启动新进程的。a.sh exec a.sh (exec是不会创建新的进程的)
14。fork    ()    exec      source   ,这4种方式来进行执行子shell,前2个方式会新建立个shell程序,后2个则是在当前shell下进行的执行。

15。export到出变量,使变量能够在子shell中起效。

16。在系统中,进程是颗树,他们是具有关系的(父子爷。。。)

17.内建命令(用enable来查看):是在shell启动时就已经被加载到内存中去的。如:pwd echo 外部命令:需要通过PATH来配置其外部程序。

18.jobs 查看后台程序,fg %n  bg %n  ctrl+ z 挂起.。 echo -E -e -n  建议使用 printf (注意:%s中间不能够有空格,因为替换之后就成了2个参数了,因为中间有空格)

19.注意:shell编程的基础是命令的集合,所以,他不像其他编程语音一样的格式,他基本上都是通过空格来表达他的参数与识别。 这就是命令形式的编程。

20.eval:把字符串当成是命令来使用。尽量不用,有风险。

21.set 重新设置位置参数。 set $(date) echo $2  , set -o      unset 删除某个变量 

22. shift 把位置参数都做移 一位,原来$1的值就被丢弃了。呵呵,$0 永远保持不变。

23.进程很多情况下是接到信号结束的。呵呵

24.trap命令:指定当接受到信号后将要采取的行动。  trap 命令 信号整数       trap - SIGOUT -表示,用默认的响应来响应该信号。

25.shell中 :冒号表示空语句,同时也表示逻辑真

26.$$ 进程号  $? 上一个命令的返回值

27.exit n  ; 0 成功  1-255 错误信息  126无权限 127命令未找到  128别信号打断

28.find 路径 选项 测试部分 动作部分 

29;用;可以分隔多个命令在同一行 ; 信号:即中断技术  ;  tar -cvf shell.tar *      tar -tf shell.tar   

30. $() ` ` 命令替换; 进程替换:  > 即重定向      ; grep 选项 正则 文件 |  路径

31.特殊元素: ls -l | grep -E a[ [ :blank: ] ]        命令行,所有特殊字符都要转义。 或者用 " ",就可以不用/来转义了。

32. AWK 工具:== gawk  ,awk -F '{ print $1 }' /etc/passwd    BEGIN{} /正册匹配即执行后门大括号/{} END{} my.awk文件。前后块,各执行一次。中间则一行执行一次。正则部分,匹配成功,就那个执行{}。

33. 图形话工具: dialog  gdialog 

原创粉丝点击