Linux Script学习笔记1
2016-12-11 22:44
267 查看
Shell 之字符串和数组
感谢菜鸟教程:http://www.runoob.com/linux/linux-shell-variable.html
什么是Shell script
Shell Script是针对Shell写的“脚本”!Shell Script 注释
单行注释:#
多行注释:
: << !
将多行进行注释
不信你试试
!
第一个Shell脚本
#!/bin/bash echo "Hello World !"
运行Shell脚本有两种方法:
1.作为可执行程序chmod +x ./test.sh
./test.sh
注意,一定要写成./test.sh,而不是test.sh
2.作为解释器参数
/bin/sh test.sh
Shell变量
定义变量时,变量名不加美元符号your_name=”runoob.com”
使用变量
代码如下:your_name="qinjx" echo $your_name echo ${your_name}
变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:
for skill in Ada Coffe Action Java; do echo "I am good at ${skill}Script" done
输出如下所示:
I am good at AdaScript
I am good at CoffeScript
I am good at ActionScript
I am good at JavaScript
只读变量
#!/bin/bash myUrl="http://www.w3cschool.cc" readonly myUrl myUrl="http://www.runoob.com"
输出如下:
/bin/sh: NAME: This variable is read only.
删除变量
unset variable_name变量被删除后不能再次使用。unset 命令不能删除只读变量。
#!/bin/sh myUrl="http://www.runoob.com" unset myUrl echo $myUrl
输出为空。
变量类型
变量类型运行shell时,会同时存在三种变量:
1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
2) 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
3) shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
Shell字符串
单引号
str=’this is a string’双引号
your_name=’qinjx’str=”Hello, I know your are \”$your_name\”! \n”
双引号可以嵌套单引号进行使用:
#!/bin/sh your_name='crazy' str="Hello, I know your are ${your_name}! \n" echo $str
双引号的优点:
1.双引号里可以有变量。
2.双引号里可以出现转义字符。
拼接字符串
#!/bin/bash your_name="crazy" greeting="hello, "$your_name" !" greeting_1="hello, ${your_name} !" echo $greeting $greeting_1
获取字符串的长度
#!/bin/bash string="abcd" echo ${#string} #输出 4
如果写成#!/bin/sh 可能会出错
提取字符串
#!/bin/bash string="runoob is a great site" echo ${string:1:4} # 输出 unoo
查找字符串
#!/bin/bash string="runoob is a great company" echo `expr index "$string" is` # 输出 8
注意: 以上脚本中 “`” 是反引号,而不是单引号 “’”,不要看错了哦。
Shell数组
bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。
定义数组
在Shell中,用括号来表示数组,数组元素用”空格”符号分割开。定义数组的一般形式为:数组名=(值1 值2 … 值n)
例如:
array_name=(value0 value1 value2 value3)
读取数组
#!/bin/bash array_name=(banana apple orange juice) valuen=${array_name[0]} echo $valuen echo ${array_name[3]}
输出为:
banana
juice
获取数组长度
#!/bin/bash array_name=(banana apple orange juice) valuen=${array_name[0]} echo $valuen echo ${array_name[3]}
相关文章推荐
- Linux学习笔记之:学习Shell Script
- 「学习笔记-Linux」学习Shell Script
- Linux的学习笔记05:编写shell script
- 写得蛮好的linux学习笔记(压缩命令,vi一般用法,认识SHELL,正规表示法)
- linux学习笔记
- Linux 学习笔记( LINUX运行的硬件基础1)
- 学习嵌入式Linux系统的笔记和体会
- Linux学习笔记之后台进程(at和&)
- 写得蛮好的linux学习笔记(linux目录架构)
- Linux下汇编学习笔记之三--(Professional Assembly Language)
- 整理下最近LINUX学习笔记
- Linux学习笔记-与系统管理有关的命令[转帖]
- Openldap for Linux 学习笔记 [原文http://www.ringkee.com/jims/technic_folder/Openldap]
- Linux学习笔记
- 转载:写得蛮好的linux学习笔记
- rh9 linux服务配置学习笔记---------Apache
- LINUX学习笔记—SAMBA使用篇 smb 文件共享
- 学习笔记-Linux 系统管理学习笔记(一)
- Linux基础知识学习笔记(一)--文件系统的权限管理
- Linux下的串口通信学习笔记