1.如何定义变量和给变量赋值
变量名=变量值 注意:“=”的周围不要有任何空格,否则会出现command not found错误。
例:
变量值为“1+1”,而不是想象中的“2”
在bash中,如果要将算数表达式的数值赋给一个变量们可以使用let命令
将一个变量的值直接赋给另一个变量
将命令的结果值给变量
2.变量命名规则
变量名必须以字母或下划线“_”开头,后面跟字母、数字、下划线,不能有?、*等其他字符。
3.使用printf打印变量的值
%b 相对应的参数被视为含有要被处理的转义序列之字符串。
%c ASCII字符。显示相对应参数的第一个字符
%d, %i 十进制整数
%e 浮点格式
%E 浮点格式
%f 浮点格式
%g %e或%f转换,看哪一个较短,则删除结尾的零
%G %E或%f转换,看哪一个较短,则删除结尾的零
%o 不带正负号的八进制值
%s 字符串
%u 不带正负号的十进制值
%x 不带正负号的十六进制值,使用a至f表示10至15
%X 不带正负号的十六进制值,使用A至F表示10至15
%% 字面意义的%
4.使用echo命令打印变量值
可以使用转义字符与printf命令基本相同,但需要使用“-e”选项激活转义字符功能。
有时需要使用${}来避免一些歧义。
5.export语句:将指定给它的变量或函数自动输出到后续命令的执行环境。
语法:export -fnp 变量或函数名称=变量设置值
-f 选项表示 export一个函数;
-n选项表示将export属性从指定变量或函数上移除;
-p选项打印当前shell所有输出变量,与单独执行export命令结果相同。
例:
JAVA_HOME=/usr/local/jdk
export $JAVA_HOME
6.如何删除变量
unset -fv 变量或函数名
-f表示删除一个已定义的函数;
-v表示删除一个变量
例:
export JAVA_HOME=/usr/local/jdk
unset JAVA_HOME
注意:使用unset命令不能删除一个只读变量,否则将会出现错误。
7.如何检查变量是否存在
使用类似如下语法,来检查一个变量是否存在
${varname? Error: the variable is not defined}
上述语句的含义是:(1)如果变量varname已定义且不为空,则此语句就相当于$varname;
(2)如果变量varname的值是空,则此语句的值也是空;
(3)如果varname未定义,则此语句返回一个错误,并显示问号“?”定义信息错误“Error: the variable is not defined”
8.历史命令history
9.输入!!来重复执行上一条执行过的命令
10.shell中的扩展,一共8种:大括号扩展,波浪号扩展,参数和变量扩展,命令替换,算术扩展,进程扩展,单词拆分和文件名扩展。
(1)大括号扩展
比如在主目录下创建三个目录,可以使用类似如下语句:
mkdir ~/{dir1,dir2,dir3}
Bash4.0会试图让每个生成的量都含有同样多地位数,如果位数不同就在前面补零。
(2)波浪号可以用来指代你自己的主目录,或其他人的主目录
例:
$ cd ~
$ pwd
/home/hx
$cd ~jr #进入用户jr的主目录
11.线束/et目录下的所有文配置文件:
ls /etc/*.conf
12.创建和使用别名
alias name='command'
例:
alias ll='ls -l'
13.用户登录时,登录shell调用初始化文件和脚本的次序依次是:/etc/profile、/etc/profil.d目录下的脚本、$/HOME/.bash_profile、$/HOME/.bashrc和/etc/bashrc。