bash笔记2

BASH的TMOUT变量用于控制台自动退出的时间


来自高级bash脚本编程指南

 

ll -t | sort -k 5 -r

 

加密文件:

gpg -c xxx.txt

gpg xxx.txt.gpg

可以通过gpg给脚本加密,或者用shc ccsh(a bash to c cross compiler)

 

cmdline="$opeartion$procName"

$cmdline $argv

 

find . | grep -v 'org.eclipse.osgi' | xargs -t -i cp --parrents {} /tm/111/conf

--parrents表示同时拷贝目录结构 

 

echo -e "`date +%Y_%m_%d_%r` \t ${FUNCNAME[1]}:\t$1\t$2" >> xxx.log

打印当前函数名称到日志中。

参考内部变量

 

uniq去掉重复的行

 

1.检查参数

case "$1" in
""      ) lines=50;;
*[!0-9]*) Usage; exit 99;;
*       ) lines=$1;;
esac

2.更有效率的方法
cd /var/log || {
  echo "xxxx" > &2
  exit 99;
}

3.注释字符的例外情况
  "#"和\#不是注释
  echo ${PATH#*:}  参数替换
  echo $((2#101011))  数制转换
 
4. ,用于连接一系列算术命令,但是只有最后一项会被返回
  let "t2=((a=9,15/3))" # set a=9 and t2=15/3
 
5. :相当与true
  while:
  do
  done
  在if/else中坐占位符
  if condition
  then:
  else
  fi
  :> data.xxx相当于cat /dev/null > data.xxx

6. ** 幂运算

7. {xxx, yyy, zzz}扩展集合

8. (cd /src/dir && tar cf - .) | (cd /dst/dir && tar xpvf -)
  上面两个-号,第一个相当于stdout,原本这里应该指定xxx.tar的,但-可以指代stdout,因此输出到stdout
  第二个相当于stdin
  p参数表述所有权及文档属性。
 
9.${1:-$BACKFILE} 如果$1为空,用$BACKFILE

10. a='^H^H'
    echo -n 'abcdef$a ' # 一定要加空格才能包含两个退格
   
11.let作为算术运算,和(())可作为test的一部分
  a=2334
  let "a+=1"
  b=${a/23/BB} # 替换23-BB
 
12.代码作用域
  local var 只在代码块{}或者函数中可见
 
13.$9之后的参数,引用的时候要加{},如${10}

14.== [[]]和[]在没有""的情况下不同
  [[ $a == z* ]] 模式匹配,z开头的string极为true
  [ $a = z* ] file globbing文件匹配
 
15.数制${BASE#NUMBER}

16.PS4用于bash -x
  SECONDS运行了多久
  BASH_SUBSHELL运行了多少层shell
  SHLVL shell层次
 
17.${#string} 字符串长度
  expr length $string
  expr "$string":".*"
 
  从字符串开始匹配字符串长度
  expor match "$string" "$substr"
  expor "$string":"$substr"
 
  索引
  expr index $str $substr
 
  提取字符串
  ${string:pos}
  ${string:pos:len}
  如果是负数,可以加一个(-4)或者 -4(加一个空格)转义
  如果str是*或者@,这已参数的个数来算
  如${@:2:3}第二个后4个参数
 
  string删除
  ${str#substr} 从左边第一个开始删除
  ${str##substr} 从左边最后一个开始删除
  ${i##+(0)} 删除最长连续的0
  ${str%substr} ${str%%substr}从右边开始
 
  string替换
  ${str/substr/rplstr}
  ${str//substr/rplstr} # replace all
  ${str/#sbustr/rplstr} # 从左边开始替换
  ${str/%sbustr/rplstr} # 从右边开始替换
  替换法则类似于file globbing,不是正则表达式
 
18.echo假管道
  echo | awk '{print substr (""${str}"",3,4)}'用echo来避免使用文件,也就是假管道

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值