百人计划

shell脚本小练习

2017-10-15  本文已影响57人  寻叶亭

1.vim var.sh新建一个var.sh文件,添加以下代码,其中符号#!用来告诉系统用哪种shell来执行该脚本。

#!/bin/bash
 a=123
    echo $a
 DATE=`date`
    echo "Date is $DATE"

然后赋予执行权限chmod+x var.sh,执行命令./var.sh,打印结果如下:

123
Date is 2017年 10月 15日 星期日 19:55:04 CST

由此,我们可以得出:
echo命令即打印功能,类似其他编程语言中的print
变量名前加上$代表取变量的值
另需注意:1.'='前后不能有空格;2.DATE=date中符号·不是单引号,而是Esc下面的反引号键

2.read可读取键盘输入作为变量

   #!/bin/bash
   echo "What is your name?"
   read PERSON
   echo "Hello,$PERSON"

运行后输出

What is your name?

输入cyt后界面输出如下:

cyt  
Hello,cyt

3.函数

#!/bin/bash
function func(){
    echo $[ $1 * $2 ]
}
result=`func $1 $2`
echo the result is $result
定义了一个将2个数相乘的功能,$1和$2分别代表第一个传参和第二个传参,如执行以下命令将3个7作为参数传递:

./func.sh 3 7

得出结果为:

the result is 21

4.awk功能很强大,这里只展示最简单的用法,这里的$1表示过滤出结果的第1列

[cyt@localhost test]$ date
2017年 10月 15日 星期日 21:05:39 CST
[cyt@localhost test]$ date |awk '{print "Year:" $1"\tMonth:" $2"\tDay:"$3}'
Year:2017年  Month:10月   Day:15日

5.sed
替换一行中的某部分
格式:sed -i 's/要替换的字符串/新的字符串/' filename(匹配字符串可用正则表达式)
比如test.txt里面内容长这样:

 Hello,world

比如以上test.txt文件执行 sed -i 's/world/replaceTest/' test.txt 后查看,可以发现替换成功

 Hello,replaceTest
上一篇下一篇

猜你喜欢

热点阅读