shell脚本
1.source ~/.bash_profile是什么意思
~ 这个符号表示home目录,
.bash_profile 是一个隐藏的配置文件,主要是用来配置bash shell的,
source ~/.bash_profile 就是让这个配置文件在修改后立即生效。
2.shell脚本中$!、$@、$#、$$、$0、$1、$2、$*的含义
$! :Shell最后运行的后台Process的PID(后台运行的最后一个进程的进程ID号)
$#:添加到shell当中参数的个数
$$:Shell本身的PID(ProcessID,即脚本运行的当前进程ID号)
$0:脚本本身的文件名
$1:传到Shell当中的第一个参数
$2:传到Shell当中的第二个参数
`$*`:`所有参数列表。如$*用" "括起来的情况、以"$1 $2 … $n"的形式输出所有参数,此选项参数可超过9个;若不加" ",那么$*与$@的输出结果相同`
$@:所有参数列表。如$@用" "括起来的情况、以"$1" 、"$2"、 … "$n" 的形式输出所有参数。
$? :是显示最后命令的退出状态,0表示没有错误,其他表示有错误
3.
-eq //等于
-ne //不等于
-gt //大于
-lt //小于
ge //大于等于
le //小于等于
- -eq偏向整数数字,不能进行字符串的测试,=既适用于数字又适用于字符串。
4.双引号 括住的内容 ,将视为单一字符;
` `,倒引号是指令
/ 斜线 (forward slash)
在路径表示时,代表目录。
cd /etc/rc.dcd ../..cd /
通常单一的 / 代表 root 根目录的意思;在四则运算中,代表除法的符号。
let \"num1 = ((a = 10 / 2, b = 25 / 5))\"
\\ 倒斜线
在交互模式下的escape 字元,有几个作用;放在指令前,有取消 aliases的作用;
放在特殊符号前,则该特殊符号的作用消失;放在指令的最末端,表示指令连接下一行。
| 管道 (pipeline)
pipeline 是 UNIX 系统,基础且重要的观念。连结上个指令的标准输出,做为下个指令的标准输入。
who | wc -l
善用这个观念,对精简 script 有相当的帮助。
! 惊叹号(negate or reverse)
通常它代表反逻辑的作用
在规则表达式中她担任 \"反逻辑\" 的角色
ls a[!0-9]
上例,代表显示除了a0, a1 .... a9 这几个文件的其他文件。
: 冒号
在 bash 中,这是一个内建指令:\"什么事都不干\",但返回状态值 0。
** 次方运算
两个星号在运算时代表 \"次方\" 的意思。
let \"sus=2**3\"echo \"sus = $sus\" # sus = 8