Shell 脚本技巧

1 数组

  arr_string=("sadf" "adsf");

  arr_string_len=${#arr_string[@]}

  echo ${arr_string[1]}

2 echo 0x00000 到二进制文件

  echo 0x88888888 | xxd -r -ps file

  如何换字节序echo呢?

header1=`expr substr $header 9 2`
header2=`expr substr $header 7 2`
header3=`expr substr $header 5 2`
header4=`expr substr $header 3 2`
echo -n -e "/x${header1}" > $output
echo -n -e "/x${header2}" >> $output
echo -n -e "/x${header3}" >> $output
echo -n -e "/x${header4}" >> $output

 

3 shell 输入参数

  

$0 这个程式的执行名字
$n 这个程式的第n个参数值,n=1..9
$* 这个程式的所有参数,此选项参数可超过9个。
$# 这个程式的参数个数
$$ 这个程式的PID(脚本运行的当前进程ID号)
$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)
$? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
$- 显示shell使用的当前选项,与set命令功能相同
$@ 跟$*类似,但是可以当作数组用

 

4 参数判断

shopt -s extglob

if [[ $1 == @(aaa|bbb|ccc) ]] ; then

  echo "xxxx"

else

  xxx

fi

 

5 格式化输出

  printf “|%-10S|%-10S”  $a $b 

 

6 ...

posted @ 2018-04-30 13:12  JustRelax  阅读(181)  评论(0编辑  收藏  举报