Shell 学习笔记一(基本语法)

来源:互联网 发布:python安装环境 编辑:程序博客网 时间:2024/05/05 14:50

         Shell脚本和编程语言很相似,也有变量和流程控制语句,但Shell脚本是解释执行的,不需要编译,Shell程序从脚本中一行一行读取并执行这些命令,相当于一个用户把脚本中的命令一行一行敲到Shell提示符下执行。

         Shell初学者请注意,在平常应用中,建议您不要用 root 帐号运行 Shell 。作为普通用户,不管您有意还是无意,都无法破坏系统;但如果是 root,那就不同了,只要敲几个字母,就可能导致灾难性后果。

变量赋值与引用:

变量名=值 

要取用一个变量的值,只需在变量名前面加一个$( 注意: 给变量赋值的时候,不能在"="两边留空格 )

Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则:

  1. 首个字符必须为字母(a-z,A-Z) 或者_
  2. 中间不能有空格,可以使用下划线(_)
  3. 不能使用其他标点符号
输出第一个hello word!

#!/bin/basha="hello word";echo "${a}s";


有时候变量名可能会和其它文字混淆,比如:

num=2echo "this is the $numnd"
上述脚本并不会输出"this is the 2nd"而是"this is the ";这是由于shell会去搜索变量numnd的值,而实际上这个变量此时并没有值。这时,我们可以用花括号来告诉shell要打印的是num变量:

num=2echo "this is the ${num}nd"

已定义的变量,可以被重新定义,如:

your_name="tom"echo $your_nameyour_name="alibaba"echo $your_name

这样写是合法的,但注意,第二次赋值的时候不能写$your_name="alibaba",使用变量的时候才加美元符($)。


Shell 注释

以“#”开头的行就是注释,会被解释器忽略。shell里没有多行注释,只能每一行加一个#号

如果在开发过程中,遇到大段的代码需要临时注释起来,过一会儿又取消注释,怎么办呢?每一行加个#符号太费力了,可以把这一段要注释的代码用一对花括号括起来,定义成一个函数,没有地方调用这个函数,这块代码就不会执行,达到了和注释一样的效果。


Shell字符串

字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。

单引号:

str = 'this is string

单引号字符串的限制:

  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
  • 单引号字串中不能出现单引号(对单引号使用转义符后也不行)。
双引号:
name='rockie bob'echo "Hello ,I know your name \"$name\""

双引号的优点:
  • 双引号里可以有变量
  • 双引号里可以出现转义字符

拼接字符串:

str1='hello'str2='word'echo $str1 $str2 I\'m bob

获取字符串长度:

string='abcd'echo ${#string} #输出 4

提取字符串:

string="alibaba is a great company"echo ${string:1:4} #输出liba

查找字符串:

string="alibaba is a great company"echo `expr index "$string" is`

0 0
原创粉丝点击