变量名和等号之间不能有空格。同时,变量名的命名须遵循如下规则:
- 首个字符必须为字母
- 可以使用下划线_
- 不能使用标点符号和空格
- 不能使用bash里的关键字(可用help命令查看保留关键字)
1.定义变量
1 2 |
#var和=不能有空格 var="shengshui.com" |
2. $ 引用变量值
1 2 3 4 |
#$var 是${var}简写,$var可能会错误 $var #or ${var} |
3. readonly只读变量
1 2 3 4 |
#!/bin/bash var="macRong" readonly var var="shengshui.com" #var: readonly variable |
4.删除变量
1 2 3 4 |
#!/bin/sh url="http://shengshui.com" unset url echo $url |
特殊变量
1.0.局部变量
1.1.环境变量(环境是由一组变量组成的,这些变量中存有进程可能需要引用的信息,环境是由一组变量组成的,这些变量中存有进程可能需要引用的信息),包括shell启动的程序,都能访问环境变量,shell脚本也可以定义环境变量
1.2.shell变量 是由shell程序设置的特殊变量。有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
3.2.位置参数
$0就是脚本文件自己的名字,$1 是第一个参数,$2 是第二个参数,$3 是第三个参数…。$9 之后的位置参数就必须用大括号括起来了,比如,${10},${11},${12}。
- $# : 传递到脚本的参数个数
- $* : 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过 9个
- $$ : 脚本运行的当前进程 ID号
- $! : 后台运行的最后一个进程的进程 ID号
- $@ : 与$#相同,但是使用时加引号,并在引号中返回每个参数
- $: 显示shell使用的当前选项,与 set命令功能相同
- $? : 显示最后命令的退出状态。 0表示没有错误,其他任何值表明有错误。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#!/bin/bash MINPARMS=10 echo echo "The name is \"$0\"" echo "The name is \"`basename $0`\"" echo if [ -n "$1" ] then echo "Paraneter #1 is $1" fi if [ -n "${10}" ] then echo "Parameter #10 is ${10}" fi echo "---------------------------------" echo "All the command-line parameter are : "$*"" if [ $# - lt "$MINPARMS" ] then echo "$MINPARMS command-line arguments" fi echo |