1、&& 后面再加语句
[ -f $file ] && echo "$file exist" ; echo "ok"
[ -f $file ] && echo "$file exist" && echo "ok"
两者的区别是,第一个无论前面执行是否成功,ok都会打印;第二个只有前面两个都执行成功才会打印ok
2、while死循环写法
while :
do
done
3、判断执行脚本的用户是否为root
[ $UID -eq 0 ] && echo " user is root" || echo "user is not root"
[ $(whoami) == root ]&& echo " user is root" || echo "user is not root"
4、nc命令进行拷贝,从server2拷贝数据到server1
server1上面:nc -lp 1234 >file.name
server 2上面:nc -w 3 server1 1234 < file_to_transmit
5、awk 中的函数:split 、substr
split($0,a,":" ); #将$0按照“:”进行分割成数组,放到数组a中
substr($0,6);#返回$0中从第6个字符开始之后的字符
substr($0,6,7);#返回$0中从第6个字符到底7个字符
6、格式化输出xargs
cat a
1
2
3
4
5
6
cat a | xargs -n 3
1 2 3
4 5 6
7、bc命令里的scale,ibase,obase
一般的shell是默认不能处理小数运算的如,num=$((10/3));echo $num; 为3,并不会是小数
但是可以使用bc来进行处理,或是awk里进行运算,在这里只说bc的用法
echo "10/3"|bc #其实还是3
echo "scale=1;10/3"|bc #就是3.3了
scale就是保留小数的位数
echo "ibase=10;obase=16;10"|bc #A ibase表示输入的数进制为10,输出进制为16进制,10在16进制为A