目录
shell变量
1、变量的命名规则
以字母或下划线开头,组合的数字、字母、下划线,中间不能有空格,但可以有下划线。
1.1、正确的命名:
var
var2
_var
var_a2
1.2、错误的命名
?var=123
user*name=var
1.3、隐式命名
for file in `ls /etc`
或
for file in $(ls /etc)
1.4、使用变量
根据定义的变量名如var
,用美元符使用变量$var
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
1.5、只读变量
一下只读变量重新赋值会报错。
varUrl = 'www.baidu.com'
readonly varUrl
varUrl = 'www.me.com'
1.6、删除变量
使用unset
unset varUrl
被删除的变量不能够再次使用
#!/bin/sh
myUrl="https://www.baidu.com"
unset myUrl
echo $myUrl
以上没有任何输出
1.7、变量类型
运行shell时,会同时存在三种变量:
-
1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
-
2) 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
-
3) shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
2、字符串
字符串是最常见的变量,有分单引号和双引号字符变量。
2.1、单引号变量
原样数据变量
my_var = '$year baidu.com'
1、单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
2、单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
2.2、双引号变量
your_name="baidu"
str="Hello, I know you are \"$your_name\"! \n"
echo -e $str
输出结果为:
Hello, I know you are "baidu"!
特点:
可以有变量,可以出现转义字符
2.3、拼接字符
your_name="runoob"
# 使用双引号拼接
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1
# 使用单引号拼接
greeting_2='hello, '$your_name' !'
greeting_3='hello, ${your_name} !'
echo $greeting_2 $greeting_3
输出结果为:
hello, runoob ! hello, runoob !
hello, runoob ! hello, ${your_name} !
2.4、获取字符串长度
string="abcd"
echo ${#string} # 输出 4
2.5、提取子字符串
string="runoob is a great site"
echo ${string:1:4} # 输出 unoo
2.6、查找子字符串
查找字符 i 或 o 的位置(哪个字母先出现就计算哪个):
string="runoob is a great site"
echo `expr index "$string" io` # 输出 4
注意: 以上脚本中 ` 是反引号,而不是单引号 ',不要看错了哦。
标签:shell,变量,单引号,echo,your,name From: https://www.cnblogs.com/lgxdev/p/17025679.html