Shell 学习笔记一(基本语法)
2014-05-05 13:20
375 查看
Shell脚本和编程语言很相似,也有变量和流程控制语句,但Shell脚本是解释执行的,不需要编译,Shell程序从脚本中一行一行读取并执行这些命令,相当于一个用户把脚本中的命令一行一行敲到Shell提示符下执行。
Shell初学者请注意,在平常应用中,建议您不要用 root 帐号运行 Shell 。作为普通用户,不管您有意还是无意,都无法破坏系统;但如果是 root,那就不同了,只要敲几个字母,就可能导致灾难性后果。
要取用一个变量的值,只需在变量名前面加一个$( 注意: 给变量赋值的时候,不能在"="两边留空格 )
Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则:
首个字符必须为字母(a-z,A-Z) 或者_
中间不能有空格,可以使用下划线(_)
不能使用其他标点符号
输出第一个hello word!
有时候变量名可能会和其它文字混淆,比如:
已定义的变量,可以被重新定义,如:
这样写是合法的,但注意,第二次赋值的时候不能写$your_name="alibaba",使用变量的时候才加美元符($)。
如果在开发过程中,遇到大段的代码需要临时注释起来,过一会儿又取消注释,怎么办呢?每一行加个#符号太费力了,可以把这一段要注释的代码用一对花括号括起来,定义成一个函数,没有地方调用这个函数,这块代码就不会执行,达到了和注释一样的效果。
单引号:
单引号字符串的限制:
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
单引号字串中不能出现单引号(对单引号使用转义符后也不行)。
双引号:
双引号的优点:
双引号里可以有变量
双引号里可以出现转义字符
拼接字符串:
获取字符串长度:
提取字符串:
查找字符串:
Shell初学者请注意,在平常应用中,建议您不要用 root 帐号运行 Shell 。作为普通用户,不管您有意还是无意,都无法破坏系统;但如果是 root,那就不同了,只要敲几个字母,就可能导致灾难性后果。
变量赋值与引用:
变量名=值要取用一个变量的值,只需在变量名前面加一个$( 注意: 给变量赋值的时候,不能在"="两边留空格 )
Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则:
首个字符必须为字母(a-z,A-Z) 或者_
中间不能有空格,可以使用下划线(_)
不能使用其他标点符号
输出第一个hello word!
#!/bin/bash a="hello word"; echo "${a}s";
有时候变量名可能会和其它文字混淆,比如:
num=2 echo "this is the $numnd"上述脚本并不会输出"this is the 2nd"而是"this is the ";这是由于shell会去搜索变量numnd的值,而实际上这个变量此时并没有值。这时,我们可以用花括号来告诉shell要打印的是num变量:
num=2 echo "this is the ${num}nd"
已定义的变量,可以被重新定义,如:
your_name="tom" echo $your_name your_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`
相关文章推荐
- 学习笔记:shell基本语法
- mongoDB学习笔记--shell基本语法(二)
- Shell学习笔记二(基本语法)
- python学习笔记(一)——Python初识(IDE环境及基本语法,spyder快捷方式)
- [core Java学习笔记][第一二三章基本语法]
- Linux Shell学习笔记2:基本的bash shell命令
- Oracle 学习笔记 15 -- PL/SQL基本语法、流程控制
- thinkinginjava学习笔记03_基本语法
- 韩顺平_轻松搞定网页设计(html+css+javascript)_第19讲_js运行原理_js开发工具介绍_js程序(hello)_js基本语法_学习笔记_源代码图解_PPT文档整理
- [学习笔记]Beautiful Soup语法基本使用
- java学习笔记(二) -- 基本语法
- 21. Kotlin学习笔记 (一) 基本语法
- Markdown语法学习笔记-----基本语法
- go基本语法学习笔记之流程控制
- go基本语法学习笔记之并发编程
- Python学习笔记——基本语法
- JavaScript学习笔记一 - 基本语法,数据类型、变量
- 学习Markdown基本语法笔记
- shell 学习笔记3-- 语法
- shell学习(一)——基本数据类型和语法