shell脚本编程

来源:互联网 发布:html嵌入php 编辑:程序博客网 时间:2024/06/09 14:31

今天看看shell编程,记录下期中与想象中不一样的地方

0.注释用#

1.shell的变量赋值   your_name="zhm",  在your_name和等号中间不能有空格,这和别的语言很不一样,那么在使用变量时和别的语言也不一样,要使用$your_name,,一般要用

${your_name},一定是大括号


2.那么如何把一个变量变成只读的呢,在C语言中用const  那么shell中很直接,用   readonly  your_name来设置your_name为只读变量


3.shell中的字符串可以用单引号也可以用双引号,和python里面是一样的(原因与python不一样----单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的但是在C语言中就不一样了,单引号内的时字符,双引号内的才是字符串。

还有一点就是单引号内不能有变量。


4.网宿最喜欢字符串了,那给你一个字符串如何提取期中的一段出来呢

str="helloworld"

echo ${str:1:4}   #提取str字符串中的1到4的字符串

那这个输出应该是ello

那么如何计算字符串的长度呢

echo ${#str}     #输出的长度是10

在这里有点感觉“#”是用来去其后面的属性的


5.那一个语言总得知道其基本的数据结构吧

有两个:变量和数组

那如何定义数组呢

array_name=(value1 value2 value3)

那使用和C语言里面一样,都是   $array_name[0]  也是变量嘛,肯定还要用$


6.那既然字符串可以获取长度,数组肯定也可以,其实和字符串差不多

array_name=("kkk" 2 3 4 5)

echo ${#array_name[0]}   #获取第0个元素的长度为3  ,根据这个就可以算出数组总长度

echo ${#array_name[*]}    #获取数组的个数为5


7.那既然shell是脚本,那么就可以向shell脚本传递参数,那在脚本里面改如何获取参数呢

echo "Shell 传递参数实例!";echo "执行的文件名:$0";echo "第一个参数为:$1";echo "第二个参数为:$2";echo "第三个参数为:$3";echo "传递到脚本参数个数:$#"echo "脚本运行当前进程ID号:$$"

那我们能不能一次性把输入参数全部打印出来呢,肯定可以

echo "传递参数作为一个一个字符显示: $*"


8.对于数组来说,我们能不能一次性打印出数组的所有元素

array_name=(1 2 3 4)

echo "数组的元素为: ${array_name[*]}"


9.那你知道shell中如何对数字和字符串做比较的呢

在C语言中数字的比较可以直接用 "  >  <   ==   !=",在shell也可以

 字符串则得通过函数来做比较,比如 strcmp函数   那在shell中就简单多了,可以用关系运算符,数字和字符串都可以支持,python中字符串的比较就得用函数比如cmp()


10.那几乎每种语言里面都会有打印的函数,shell也不例外

在shell中: printf  "----%d------%d"  $a  $b

在python中:print("----a value is:")%a

在C语言中 :printf("----a value is :%d",a)


11.你知道吗,在shell还存在一个奇葩命令---test

这真是个奇葩的命令,感觉没啥用,test命令用于判断后面的条件是否成立,这不是直接用if就好了吗,为什么还有这个

难道是因为其简单,只需  test  $a -eq  $b    估计不对,请大神指点

看了下面懂了,其实test不光可以测试数组,字符串,还可以测试文件,老有用

原创粉丝点击