字符串相关
${var#*token} //#表示一,*token是正则表达式,从左删除,直到删除完token
${var##*token} //##表示最后,*token是正则表达式,从左删除,直到删除完token
${var%token*} //%表示一,*token是正则表达式,从右删除,直到删除完token
${var%%token*} //#表示最后,*token是正则表达式,从右删除,直到删除完token
${var:0:5} //从0开始数五个
imagearray=(${images//{\"image\":\"/ })对变量images按照{\"image\":\"进行分割,//与/之间与分割的字符 ,另外/后有一个空格不可省略
sort -k2n final | uniq //排序去重
语法相关
if[[a=~b]] ,其中=~为匹配正则表达式
管道
管道会开启subShell需要注意,管道中的变量作用域相当于自函数中的变量作用域
$相关
$0 这个程式的执行名字
$n 这个程式的第n个参数值,n=1..9
$* 这个程式的所有参数,此选项参数可超过9个。
$# 这个程式的参数个数
$$ 这个程式的PID(脚本运行的当前[进程ID](https://www.baidu.com/s?wd=%E8%BF%9B%E7%A8%8BID&tn=SE_PcZhidaonwhc_ngpagmjz&rsv_dl=gh_pc_zhidao)号)
$! 执行上一个背景指令的PID(后台运行的最后一个进程的[进程ID](https://www.baidu.com/s?wd=%E8%BF%9B%E7%A8%8BID&tn=SE_PcZhidaonwhc_ngpagmjz&rsv_dl=gh_pc_zhidao)号)
$? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
$- 显示shell使用的当前选项,与set命令功能相同
$@ 跟$*类似,“$@”为“$1” "$2" ... "$n", "$*" 为 "$1 $2 ... $n"
diff {var} "var {var}iable=variable
{var}"
双引号表示当作一个字符串处理
https://stackoverflow.com/questions/18135451/what-is-the-difference-between-var-var-and-var-in-the-bash-shell
根据配置文件生成Value注入的属性
awk -F= '{n=split($1,a,".");print "@Value(\"${"$1"}\")\nprivate String "a[n]";"}' origin
while getopts :u:n:f:b:j:m:i:c:vh arg; do
case $arg in
u) u=$OPTARG;;
n) h=$OPTARG;;
.
.
.
*\?) usage ;;
esac
done
expr index $var "aaa"
#{x/a/b}
#{x//a/b/}
列转行
cat file | xargs echo -n 转之后空格分割
cat file | xargs echo -n | sed 's/ /想要的分隔符/g'
行转列
sed 's/现有分隔符/\n/g' file
网友评论