shell脚本

符号:
*            通配符
            单个任意字符
~            宿主目录
&&        连接符,前一个成功了后面一个才执行
|            管道符,前者的输出作为后者的输入
||            或,只要其中一个通过,整个式子通过
\            换行符,在命令中,表示命令未打完,下一行接着打,在编码中,可转义,如:\n,\t
;            连接,如:cd /tmp;ls        表示进入tmp目录中后,查看
{}            展开,如:mkdir    file{1..10},会创建file1,file2,file3,。。。file10个文件夹
[]            连续的范围,如:grep [a-z]   /tmp/a.txt
""            字符串,但是可以获取变量
''            字符串,字符
``               括起来的东西可以当做命令来执行,~号

--------------------------------------------
变量
        自定义变量
        系统变量
自定义变量:
如:
a="helloworld"    
echo "$a"     
ip=192.168.18.105
ping -c 4 $ip       

交互式获取变量:read -p "please input a name" name
echo "$name"                
                                变量不能是数字

系统变量:(又称为内部变量,变量名都是大写)
$HOME
$HOSTNAME
$PWD
$PID
$PATH

echo $PATH           命令的搜索路径
     
PATH=$PATH:/vfast            这样/vfast中的文件在其他路径下就可以直接使用,把/vfast提升到系统变量搜索中
-----------------
A=apple
B=bnanana
echo $A.$B                只适用与当前环境,换个shell就不能识别出来


如果        export A,新打开一个shell就会识别a,把它提升为环境变量,与这个shell平级的shell不能识别,但是他的子shell可以识别


------------------------------------------
变量符号:


  
  $0    :        脚本名称
$1    :        第一个参数的名字
$2    :        第二个参数的名字
。。。
$10    :        第10个参数的名字。注意:${10}要括号括起来,否则会识别为1,0
$#    :        未知参数的个数
$$    :        脚本执行时候pid号是多少,进程号,因为脚本执行完之后,ps aux查看时候是不显示的
$@    :        未知参数的列表

$?        :     返回值
                            0:表示成功
                                非0:表示失败,常见的非0值,127命令未找到,126:没有权限

-----------------------------------
脚本的写法:
后缀名一般以    .sh    .c    .py    结尾

书写规范:
#!/bin/bash            定义开头指定的运行环境
#    说明脚本的作用,介绍
定义变量
函数
主程序
---------------------------
脚本的执行:
需要拥有x权限,拒绝777
有两种执行方式:
            sh    x.sh            在原来shell基础上又开启了一个新的shell,执行,输出,又返回到原来的shell
            source    x.sh        在当前shell执行,当前shell输出
-----------------------------
echo指令的简单使用:
echo    -n    不换行
            -e        解释转义字符
            \t            tab制表符
            \n        换行,回车
            \b            删除前一个字符
            \a            提示音
            常用颜色

echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 红色字 \033[0m"
echo -e "\033[32m 绿色字 \033[0m"
echo -e "\033[33m 黄色字 \033[0m"
echo -e "\033[34m 蓝色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天蓝字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"

echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;37m 红底白字 \033[0m"
echo -e "\033[42;37m 绿底白字 \033[0m"
echo -e "\033[43;37m 黄底白字 \033[0m"
echo -e "\033[44;37m 蓝底白字 \033[0m"
echo -e "\033[45;37m 紫底白字 \033[0m"
echo -e "\033[46;37m 天蓝底白字 \033[0m"
echo -e "\033[47;30m 白底黑字 \033[0m

------------------------------------------------

输入输出重定向

    >    >>        <        <<

 passwd zhangsan --stdin <pass.txt                    重定向输入源,pass。txt中写入密码,就会把张三的密码改变

  <        表示重定向输入,        >    表示输出
<<            重定向追加输入            >>    重定向追加输出到

    head -1 /etc/rc.d/* >/vfast/a.txt 2>/vfast/error.txt  2表示错误输出,正确输入,放到/vfast/a.txt        错误输出。放到/vfast/error.txt

    head -1 /etc/rc.d/* $>/vfast/a.txt 2>/vfast/a.txt

                            
















posted @ 2016-01-30 19:58  暗夜小精灵~~  阅读(361)  评论(0编辑  收藏  举报