Shell变量
变量说明:
-
-
命名只能用英文字符、数字和下划线,收个字符不能以数字开头
-
中间不能有空格,可以使用(_)下划线
-
不能使用标点符号
-
your_name="Joey.com" # key value 对
?var=123
user*name=runoob
#除了显式地直接赋值,还可以用语句给变量赋值
for file in `ls /etc`
for file in $(ls /etc) #以上语句将 /etc 下目录的文件名循环出来。
使用变量:
#使用一个定义过的变量,只要在变量前面加上美元符号即可 your_name="hechanghang" echo $your_name echo ${your_name} #变量名外面的花括号是可选的,加不加都行 for skill in Ada Coffe Action Java;do echo "I am a good at ${skill}Script" done #为了帮助解释器识别变量的边界
# 已定义的变量可以被重新定义:
your_name="tom"
echo $your_name
your_name="Rose"
echo $your_name
# 使用readyonly命令可以将变量定义为只读变量(只读变量不能改变)
#!/bin/bash
myUrl="http://www.hchlyf.com"
readyonly myUrl
myUrl="http://www.hc.com"
#运行脚本结果:/bin/sh:NAME:This is variable is read only
删除变量
unset vaiable_name #被删除后的变量不能被再次使用 #unset命令不能删除只读变量 #!/bin/sh myUrl="http://www.hchlyf.com" unset myUrl echo $myUrl #无任何输出
变量类型:
-
-
环境变量:所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
-
Shell变量:shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量
-
预定义变量:
- $? 执行上一个命令的返回值 执行成功,返回0,执行失败,返回非0(具体数字由命令决定)
- $$ 当前进程的进程号(PID),即当前脚本执行时生成的进程号
- $! 后台运行的最后一个进程的进程号(PID),最近一个被放入后台执行的进程 &
-
位置参数变量:
- $n | n为数字,$0代表命令本身,$1-$9代表第一到第9个参数, 十以上的参数需要用大括号包含,
如${10}。
-
$* | 代表命令行中所有的参数,把所有的参数看成一个整体。以"$1 $2 … $n"的形式输出所有参数
-
$@ | 代表命令行中的所有参数,把每个参数区分对待。以"$1" "$2" … "$n" 的形式输出所有参数
-
$# | 参数的个数
- $n | n为数字,$0代表命令本身,$1-$9代表第一到第9个参数, 十以上的参数需要用大括号包含,
-
-
vim /etc/profile
:编辑环境变量; -
注意:编辑过环境变量后需要使用:
sourse /etc/profile
#java environment;Java环境变量的设置 export JAVA_HOME=/export/servers/jdk1.8.0_241 export PATH=:$JAVA_HOME/bin:$PATH
read [选项] 值
read -p(提示语句) -n(字符个数) -t(等待时间,单位为秒) –s(隐藏输入)
相当于java中的scanner,用户输入, 从程序外部接收参数
1.在输入时,如果输错了要删除要执行control+delete
2.不要输入中文
3.NAME与"之间要有空格
read –t 30 –p “please input your name: ” NAME
echo $NAME
read –s –p “please input your age : ” AGE
echo $AGE #注意:如果隐藏输入,这里的结果是看不到的 read –n 1 –p “please input your sex [M/F]: ” GENDER
echo $GENDER