shell脚本入门

1、查看当前系统谁在登录:who

2、数出当前系统的登录用户:who | wc -l(l-->line,w-->word,c-->character)

3、小型shell脚本开发周期:$cat > nusere      新建文件,使用cat复制终端的输入

                          who | wc -l        输入程序内容

                          ^ D                Ctrl+D表示end-of-file

                          $chmod +x nusere   给此文件添加执行的权限

                          $./nusere          执行脚本,输出结果,或者/bin/sh nusere

4、#!:填写脚本执行路径,shell脚本通常第一行缩写内容为 #! /bin/sh

5、命令与参数

    (1)cd /work ; ls -l abc

    (2)命令名称是命令行的第一个项目,通常后面会跟着选项(option),任意额外的参数都会放在选项

       之后

    (3)选项的开头是破折号,后面跟着一个字母,选项可有可无,有的可能需要加上,有的则可以合并

       ls -l nusere,ls -lt nusere

    (4)长选项使用

        cd abc.c

        patch --verbose --backup -p1 < /temp/abc.c    (I/O重定向,该指令从文件中读取数据,

                                                        而不是从键盘输入)

    (5)分号(;)用来分隔同一行里面的多条命令;&符号标志shell将在后台执行其前面的命令,这意味

       着shell不用等该命令执行完,就可以执行下一条命令

    (6)shell识别的三种基本命令:内建命令、shell函数、以及外部命令

        内建命令:就是shell本身所执行的命令

        shell函数:shell函数是功能健全的一系列程序代码,以shell语言写成,可以像命令那样引用

        外部命令:外部命令是由shell的副本所执行的命令

            a:建立一个新的进程,此进程即为shell的一个副本

            b:在新的进程里,在PATH变量所列出的目录中,寻找特定的命令

            c:在新的进程里,以所找到的新程序取代执行中的shell程序并执行

            d:程序完成后,最初的shell会从终端读取下一条命令,或者执行脚本里的下一条命令

技术分享    (7)变量:就是为某个信息的片段所起的名字

        a:格式是字幕或者下划线开头,后面可接任意长度的字母、下划线、数字

        b:变量名称长度不限制,变量赋值长度不限制

        c:书写过程中不能出现空格

        d:单行可进行多次赋值:firstname=sda lastname=rew name=fjdskfjdksa

           变量值包含空格时可以使用引号:fullname="fdsa hgf kjh"

           变量二次引用不用双引号:oldname=$fullname

    (8)简单的echo输出

    (9)华丽的printf输出

        printf "the first programalwaysprints ‘%s,%s‘" HELLO WORLD

        -->the first programalwaysprints ‘HELLO,WORLD‘

    (10)基本的I/O重定向:标准输入、标准输出、标准错误输出

        I/O重定向就是你通过与终端交互,或是在shell脚本里设置。重新安排从哪里输入或者输出到

        哪里

    (11)重定向与管道

        a:以>改变标准输入    program < file 将输入改为file

        b:以>改变标准输出    program > file 将输出改为file

            >:重定向符在目标文件不存在时新加文件,如果目标文件已存在,则会覆盖,原本文件数

               据丢失

        c:以>>附加到文件    program >> file 将标准输出内容附加到file的结尾处

        d:管道"|",program1 | program2 将program1的标准输出作为program2的标准输入

            可把两个以上的程序衔接在一起,也大大的提高了执行的速度

            eg:tr -d ‘\r‘ < dos-file.txt | sort > UNIX-file.txt 先删除文件中的回车,在排

                                                                 序,最后输出到文件中

    (12)特殊文件/dev/null与/dev/tty    46


本文出自 “tabsang成长历程” 博客,请务必保留此出处http://tabsang.blog.51cto.com/6647507/1655691

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。