linux shell脚本知识点总结

脚本中的特殊字符

\ :转义字符

``:反括号中的是先执行的命令

“ ”:弱引用,输出变量的内容

"" :弱引用
[root@dnsserver ~]# name=westos
[root@dnsserver ~]# echo "$name"
westos
强引用,和变量无关

[root@dnsserver ~]# echo '$name'
$name
引用变量的两种方法

$变量命

${变量名}

脚本中的命令

seq命令:用于产生从某个数到另一个数之间的之间的所有整数

语法:seq【选项】 --尾数      seq【选项】 --首数 尾数   seq【选项】 --首数 增量 尾数

选项:
        -f 使用printf样式的浮点格式
        -s 使用指定字符串分隔数字
        -w 在列前添加0让宽度相等

命令回传码与&&和||
命令回传码为0时候,代表上一个命令正确执行
command1 && command2 :command1正确执行才去执行命令2,否则不执行(第一个的命令回传码是0,则执行第二个命令)
command1 || command2 :command1执行错误则开始执行命令2,否则不执行(第一个命令回传码不是0,则执行第二个命令)
分析ls /tmp/abc || mkdir/tmp/abc && touch/tmp/abc/hes
假设/tmp/abs存在,则命令回传码是0,第一个命令执行成功,不执行第二条命令mkdir/tmp/abc,此时创建touch /tmp/abs/hes
假设/tmp/abs不存在,则命令回传码不是0,第一条命令执行失败,执行2,成功,执行3
总结:先与后或(与或门)
-----------------
ping -w -c ip:只ping一次ip地址
---------------------

cut:用于分割一行字符
选项:
        cut -d '分隔符' -f 选取第几段
        cut -c 选取的字符范围
[root@dnsserver ~]# echo $PATH | cut -d ':' -f 4
/usr/bin
------------------------------
通过一个变量修改一个用户的密码
echo 密码 | passwd --stdin 用户名
---------------------------
判断式[]总结:
1.中括号中的每个组件都要用空格分割‘
2.中括号的变常量,最好用双引号括起来 ,保证不会出现比较元素过多的错误
 -------------------------------------------------------------------------------------------------

echo -n:
echo -n 不换行输出
$echo -n "123"
$echo "456"

最终输出
123456

而不是
123
456

-e:激活转义字符。使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:

•\a 发出警告声;
•\b 删除前一个字符;
•\c 最后不加上换行符号;
•\f 换行但光标仍旧停留在原来的位置;
•\n 换行且光标移至行首;
•\r 光标移至行首,但不换行;
•\t 插入tab;
•\v 与\f相同;
•\\ 插入\字符;
•\nnn 插入nnn(八进制)所代表的ASCII字符;


-----------------------------------------------
计算是否为0
[-z "$a" ]
a为0
$?返回0
a非0返回非0数
------------------------
数字比较运算符
-eq:是否相等
-ne:不等
-lt:小于
-le:小于等于
-gt:大于
-ge:大于或者等于
-----------------------------

文件运算比较符
-e filename :file存在则为真
-d filename
-f filename
-L filename :file为符号链接,则为真
-r                 :file为可读文件,则为真
-w               :file文件可写为真
-x                 :file文件可执行则为真
filename1 -nt filename2 :前新为真
        -ot             后新为真

常见的语句总结

--------------------------------------
for ...do...done语句格式:
for 变量 in 内容
do
语句段
done
例子:输出1到10之间的奇数
#!/bin/bash
for in do done
for num in $( seq 1 2 10)
do
        echo $num
done
---------------------------------
for do down
for ( (初始值;限制值;执行步长) )
do
        程序段
down
---------------------------------

while [condition ]
do
        程序段
done
当条件成立时候,执行循环
-----------------------------
util [condition]
do
        程序
done
当条件不成立的时候,执行循环
--------------------
#一个条件的判断

if [条件判断];then

当条件判断式1成立的,进行的操作

else

不成进行的操作

fi

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

对个条件的判断

if[条件判断1] ;then

操作1

elif[条件判断2]

操作2

else

操作3

fi

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

case ...esac语句

case $变量名称 in

     "第一个变量内容" )

      程序段

       ;;

    “第二个变量内容”)

    程序段

     ;;

  *)

   exit 1

   ;;

esac




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值