Shell 学习笔记一(基本语法)
来源:互联网 发布:python安装环境 编辑:程序博客网 时间:2024/05/05 14:50
Shell脚本和编程语言很相似,也有变量和流程控制语句,但Shell脚本是解释执行的,不需要编译,Shell程序从脚本中一行一行读取并执行这些命令,相当于一个用户把脚本中的命令一行一行敲到Shell提示符下执行。
Shell初学者请注意,在平常应用中,建议您不要用 root 帐号运行 Shell 。作为普通用户,不管您有意还是无意,都无法破坏系统;但如果是 root,那就不同了,只要敲几个字母,就可能导致灾难性后果。
变量赋值与引用:
变量名=值
要取用一个变量的值,只需在变量名前面加一个$( 注意: 给变量赋值的时候,不能在"="两边留空格 )
Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则:
- 首个字符必须为字母(a-z,A-Z) 或者_
- 中间不能有空格,可以使用下划线(_)
- 不能使用其他标点符号
#!/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
- Shell 学习笔记一(基本语法)
- Shell学习笔记二(基本语法)
- 学习笔记:shell基本语法
- oc学习笔记(一)基本语法
- C# 学习笔记(一) -- 基本语法
- torch学习笔记一(基本语法)
- Python学习笔记(一):基本语法
- python学习笔记(一)基本语法
- shell学习(一)——基本数据类型和语法
- mongoDB学习笔记--shell基本语法(二)
- JavaScript学习笔记(一)——基本语法
- jQuery学习笔记(一)基本语法内容
- 个人PHP学习笔记(一)--基本语法
- Matlab学习笔记(一)Matlab基本运算及语法
- 【学习笔记】HTML的基本语法(一)
- 【学习笔记】CSS的基本语法(一)
- Groovy学习笔记(一)基本语法
- PHP学习笔记(一) 基本语法
- Android AsyncTask完全解析,带你从源码的角度彻底理解
- SVN 提交出错 '***'out-of-date
- 第七周作业
- hadoop(一):认识
- 由dwr不支持重载的方法探究dwr的运行机制
- Shell 学习笔记一(基本语法)
- Module模式的高级用法
- Virgo与Maven整合开发环境搭建(一)
- ios监听用户是否触摸了屏幕的一种实现
- Tomcat配置连接回收、超时
- python利用thrift连接hive
- linux 查看硬盘/内存/cpu信息
- 第二章 Cocos2D-X引擎的开发环境
- jquery选择器 之 获取父级元素、同级元素、子元素