Shell变量
@1变量即在程序运行过程中它的值是允许改变的量
@2变量是用一串固定的字符来表示不固定的值的一种方法
@3变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储Script运行时可更改的程序信息
@4在shell中变量是不能永久保存在系统中的,必须在文件中声明
定义变量
变量名不加$,如:
Name=”rnunoob.com”
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程都不一样,同时,变量命名必须遵循如下规则:
@1命名只能使用英文字母,数字和下划线,首歌字符不能以数字开头
@2中间不能有空格们可以使用下划线(_)
@3不能使用标点符号
@4不能使用bash里的关键字
除了显式地直接赋值,还可以用语句给变量赋值:
for file in ‘ls /etc’
for file in $(ls /etc)
以上语句将/etc下目录的文件名循环列出来
使用变量
使用一个定义过的变量,只要在变量名前面加上$符号就可以了,如:
Name=“xue”
echo $Name
echo ${Name}
变量名外面的花括号时可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:
For skill in Ada Coffe Action Java;do
Echo “I am good at $(skill) Script”
Done
只读变量
使用readonly命令可以将变量定义为只读变量,只读变量的值不能被更改
删除变量
使用unset命令可以删除变量,语法:
Unset 变量名;
变量被删除之后不能再次使用,unset命令不能被删除只读变量。
变量类型:
运行shell时,会存在三种变量:
- 局部变量 局部变量在脚本或命令中定义,仅仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量
- 环境变量所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证器正常运行,必要时shell脚本也可以定义环境变量
- Shell变量shell变量是由shell程序设置的特殊变量,shell中由一部分是环境变量由一部分是局部变量,这些变量保证了shell的正常运行
Shell字符串
单引号 : 原样输出但单引号字符中不能出现一个单独的引号
双引号:双引号可以由变量,可以出现转义字符
拼接字符串:
ideol="world"
greet="hello "$ideol""
greet_1="hello ${ideol}"
echo $greet $greet_1
greet_2='hello,'$ideol''
greet_3='hello,${ideol}'
echo $greet_2 $greet_3
输出结果:
hello world hello world
hello,world hello,${ideol}
获取字符串长度
string="abds"
echo ${#string}
输出:4
提取字符串:
echo ${string:2:4} 输出ds
查找字符串:
echo `expr index “$string” d` 输出3 d在第三,以找到的第一个为准
Shell注释:
@1#单行注释
@2多行注释:
:<<EOF
注释内容
注释内容
EOF
注意:EOF可用其他字符替换
Shell脚本中的函数
脚本中的函数是把一个复杂的语句块定义成一个字符串的方法
下面这个例子中定义了一个函数:
Host_Message()
{
read -p "[E]xit [U]ser [H]ostname:" Action
Action=`echo $Action|tr 'a-z' 'A-Z'`
[ "$Action" = "E" ]&& exit
[ "$Action" = "U" ]&& echo You are $USER
[ "$Action" = "H" ]&& hostname
Host_Message
}
Host_Message
输出结果:
[E]xit [U]ser [H]ostname:u
You are root
[E]xit [U]ser [H]ostname:h
localhost
[E]xit [U]ser [H]ostname:e
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/1736.html