简单的变量操作
快速编辑组合键
组合键 | 功能 |
---|
ctrl+u | 从光标处向前删除命令 |
ctrl+k | 从光标处向前后除命令 |
ctrl+a | 将光标移动至命令串最前面 |
ctrl+e | 将光标移动至命令串最后面 |
变量的使用与设置:echo、变量设置规则、unset
变量查看
echo $变量名
Eg:
echo $MAIL
/var/spool/mail/nexus
设置或者修改某个变量
格式:variable=something
例子:
$ myvar=MYVAR
$ echo $myvar
MYVAR
- 变量的设置规则
- 变量与变量内容以一个等号连接
- 等号两边不能为直接接空格
myvar= sdfsdfasdf //存在空格
bash: sdfsdfasdf: 未找到命令...
$ myvar=sdfsdfasdf
$ myvar=sdfsdfad sdf //存在空格
bash: sdf: 未找到命令...
myvar="myname is $LANG"
$ echo $myvar
myname is zh_CN.UTF-8
$ myvar='myname is $LANG'
$ myvar
$ echo $myvar
myname is $LANG
命令格式:variable=$(命令)
$ myvar=$(ll)
$ echo $myvar
总用量 108 -rw-rw-r--. 1 .......(省略)
同样借助这种思想有:
cd /lib/modules/$(uname -r)/kernel
$ pwd
/lib/modules/3.10.0-957.el7.x86_64/kernel
$ myvar=OldOne
$ myvar=$myvar:NewOne
$ echo $myvar
OldOne:NewOne
unset myvar
$ unset myvar
$ echo $myvar
(空格,没有输出,默认为空)
格式:read [-pt] variable p接提示符,t接等待输入时间(单位为秒)
$ read -p "提示符" -t 5 var
提示符asdfasdf
$ echo $var
asdfasdf
说明:
declare [-aixr] variable
-a : 定义为(array)数组类型;
-i : 定义为(integer)整数类型
-x : 将variable设置为环境变量,与export一样
-r : 将变量设置为readonly类型,不可更改,也不能使用unset
例子:
产生随机数
$ declare -i number=$RADOM*10/32768 //$RANDOM,系统函数,产生0-32768之间的随机数
$ echo $number
$ 6
不带选项的情况:
$ declare num=$RANDOM*10/32768 //默认为字符串而不是数字
$ echo $num
17755*10/32768
对于数组情况:
$ var[1]="45512sd"
$ var[2]="asdf512sd"
$ var[3]="ijgigfjkvdfasdf512sd"
$ echo "${var[1]},${var[2]},${var[3]}"
45512sd,asdf512sd,ijgigfjkvdfasdf512sd
这个echo真的很像c语言中的printf()函数,$类似于%
$ var="123456789"
$ echo "sdfcasdvasdfvf${var}gfva"
sdfcasdvasdfvf123456789gfva
echo的作用就是打印输出,${variable}打印变量
例子:
$ echo "这是一个echo命令测试">t1.txt
$ cat t1.txt
这是一个echo命令测试
用echo命令输出加引号的字符串时,将字符串原样输出;
用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,
各字符串之间用一个空格分割。