shell-早间学习,每日一点-5

http://www.cnblogs.com/liuling/p/2013-8-4-01.html
http://www.cnblogs.com/stephen-liu74/category/326653.html

http://blog.csdn.net/varistor/article/details/8160585

给用户一个读与执行的权限(chmod u+rx  aa.sh),就可以用./aa.sh来执行脚本(这样执行是开启一个子shell来执行的)

#!(读音:sha-bang)实际是一个2字节的魔法数字,这是指定一个文件类型的特殊标记,它就代表一个可执行的脚本,后面跟一个路径名


shell内部变量

$SHELL  显示当前系统用的shell
$BASH   显示bash路径
$PWD 结果 等于dirs命令结果
$GROUPS  当前用户属于的组
$UID 用户ID号
$HOME  用户home目录


预定义变量,适用所有shell,无法更改
$#   取出位置参数个数
$*   取出所有位置参数内容
$?  判断上一次命令执行结果是否正确,0代表正确,非0则不代表不正确
$1、$2、$3……位置参数  脚本位置参数个数如果超过9要用{}括起来,如${10}
$_  保存之前执行的命令的最后一个参数


自定义变量:

declare / typeset 选项 变量名
declare 或 typeset 有同样的功能:指定变量属性。如果使用 declare 后面并没有接任何参数,那么 bash 就会主动的将所有的变量名称与内容通通叫出来,就好像使用 set 一样!
选项:
-a 将后面的变量定义成为数组 (array)
-i 将后面的变量定义成为整数(integer)
-x 将后面的变量变成环境变量,同export 一样,
-r 将后面的变量设定为只读 ,该变量不可被更改内容,也不能 unset
-f 列出脚本中的函数

例如:
typeset up_url="10.135.169.34"  或者: up_url="10.135.169.34"  建议前一种


readonly用来设置只读变量
readonly 变量名
readonly -f 函数名称
readonly -a 数组变量



shell脚本中的一些特殊字符:
#     后面的内容到行尾都是注释,不会执行(第一行的#!是个例外)
     注意:echo命令中被转义的#不能作为注释,在特定的参数替换结构或数字常量表达式中也不是注释
   如 echo ${PATH#*:}
         echo $((2#101011))   
       转义字符
;   命令分隔符,可以用来在一行中写多个命令
;;  终止case结构中选项
,   逗号链接了一系列的算术操作,虽然里面的内容都被运行了,最后一项被返回
`  后置引用,命令替换
:  空命令等价于NOP,也可认为与true作用相同
  可以充当占位符,例如
     if [ ]
     then :      #什么都不做,引出分支
     else
             .................
      fi
      
linux终端下的一些常用快捷键,可以加快操作速度的
Ctrl+a   移到命令行首
Ctrl+e    移到命令行尾
Ctrl+u   删除到行首的命令
Ctrl+k   删除到行尾的命令
Ctrl+a后再Ctrl+k  或者Ctrl+e后再Ctrl+u就是删除输入的全部命令
Ctrl+c  终止当前任务
Ctrl+d  登出shell
Ctrl+l  相当于clear,清屏
Esc+.   重新调用前一个命令中的参数,非常有用!
dd 删除当前行
另外加上SIS 查看日志常用命令需要也整理一下:
比如:Shift +G ,看下笔记,整理一下


9.if判断都有哪些格式?

格式一:
if  [  ];then
........
fi


等价于
if  [  ]
then
...........
fi


格式二:
if  [ ]
then
..........
else
..........
if


格式三:
if [ ]
then
......
elif [ ]
then
.......
fi


格式四:
if [ ]
then
......
elif [ ]
then
.......
elif [ ]
then
.......
elif [ ]
........
elif
.......
fi


if-grep结构:


if grep -q aa  book.txt
then echo "book.txt至少有一个字符串aa"
fi

待继续:
http://blog.csdn.net/varistor/article/details/8160585

原文地址:https://www.cnblogs.com/pony1223/p/3456702.html