一、
set -e : 执行的时候如果出现了返回值为非零,整个脚本 就会立即退出
set +e: 执行的时候如果出现了返回值为非零将会继续执行下面的脚本
二、
echo(选项)(参数)选项
-e:激活转义字符。使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
•\a 发出警告声;
•\b 删除前一个字符;
•\c 最后不加上换行符号;
•\f 换行但光标仍旧停留在原来的位置;
•\n 换行且光标移至行首;
•\r 光标移至行首,但不换行;
•\t 插入tab;
•\v 与\f相同;
•\ 插入\字符;
•\nnn 插入nnn(八进制)所代表的ASCII字符;
三、
trap命令的使用语法如下:
trap command signal
signal是指接收到的信号,command是指接收到该信号应采取的行动,也就是:
trap ‘命令;命令’ 信号编号
或者
trap ‘命令;命令’ 信号名
四、
位置参数可以用shift命令左移。比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。
五、cd $meshworkdir > /dev/null
六、
curl -s -o
aliyun_pop_addr=$(cat aliyun-pop-addr | tr -d ‘[:space:]’)
cd - > /dev/null
-s/–silent 静音模式。不输出任何东西
-o/–output 把输出写到该文件中
七、tr -d命令删除与字符无关的符号
echo “/192.168”| tr -d ‘/’
结果:192.168
八、
xlog “Setting up runtime parameters…”
sed -i “s/TENANT/$tenant/” $meshworkdir/envfile
九、(which指令会在环境变量$PATH设置的目录里查找符合条件的文件。)
function backup-iptables() {
xlog "Backing up iptables nat rules..."
if which iptables-save > /dev/null; then
iptables-save -t nat > $meshworkdir/iptables.backup
else
error "iptables-save not found, unable to backup nat rules."
exit 1
fi
}
-t | --table
指定要导出的表
十、! pgrep -x sidecar-agent
pgrep 是通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行
十一、 2>&1 &
基本含义
/dev/null 表示空设备文件
0 表示stdin标准输入
1 表示stdout标准输出
2 表示stderr标准错误
> file 表示将标准输出输出到file中,也就相当于 1>file
2> error 表示将错误输出到error文件中
2>&1 也就表示将错误重定向到标准输出上
2>&1 >file :错误输出到终端,标准输出重定向到文件file,等于 > file 2>&1(标准输出重定向到文件,错误重定向到标准输出)。
& 放在命令到结尾,表示后台运行,防止终端一直被某个进程占用,这样终端可以执行别到任务,配合 >file 2>&1可以将log保存到某个文件中,但如果终端关闭,则进程也停止运行。如 command > file.log 2>&1 & 。
nohup放在命令的开头,表示不挂起(no hang up),也即,关闭终端或者退出某个账号,进程也继续保持运行状态,一般配合&符号一起使用。如nohup command &。
十二、
请解释if (kill -0 $pid 2>/dev/null)代码的意思?
1、kill -0
pid中的-0表示不发送任何信号给PID对应的进程,但是仍会对变量值PID对应的进程是否存在进行检查,如果
pid中的−0表示不发送任何信号给PID对应的进程,但是仍会对变量值PID对应的进程是否存在进行检查,如果pid对应的进程存在,则返回0,不存在返回1。
2、2>/dev/null不输出错误信息。
十三、
if ls $meshworkdir/.lock > /dev/null 2>&1; then
error “You’ve already installed sofa-mesh on this host. Uninstall it before reinstallation.”
exit 1
fi
function lock-install() {
if ls $meshworkdir/.lock > /dev/null 2>&1; then
error “You’ve already installed sofa-mesh on this host. Uninstall it before reinstallation.”
exit 1
fi
xlog "Using $meshworkdir as the sofa-mesh working directory."
mkdir -p $meshworkdir
chmod 777 $meshworkdir
touch $meshworkdir/.lock
}
十四、
$@表示所有参数
$#表示所有参数的个数