shell笔记

发表评论 阅读评论

shell note 之前零散的学习了些linux shell的知识,这里就先记录下整理好的一部分,等以后再整理好其他的东西的时候再记录。现在cocos2d-x v3.0 alpha1已经开始讲shell脚本转移到python了,这样就会更少的使用shell脚本了,记录在这里以后也不好忘记了。

在子进程中执行脚本

./myshell.sh    # 执行shell脚本
$(command list) # 新开一个base来执行该代码,command list的执行结果将直接在当前shell中重新执行
$(echo ls)      # 子shell返回ls命令名,并在当前shell执行

产生一个子shell来执行脚本,脚本中的变量及路径跳转对当前终端没有影响

在当前shell进程中执行脚本

. ./myshell.sh
source myshell.sh

上面脚本中的变量及路径跳转都会直接反应在当前终端里

shell 快速输入上一条命令的参数

命令本身是参数0,后面依次为1,2,3,4,5...
快捷键
Alt+. 快速输入上一条命令的最后一个参数

命令 !$ 返回上一条命令的最后一个参数 !!:n-m 获取上一条命令的指定的参数,n,m都为正整数,0表示命令本身

!!:0    # 上一条命令的参数0
!!:1    # 上一条命令的参数1
!!:11   # 上一条命令的参数11
!!:1-3  # 上一条命令的参数1至3
!!:-3   # 上一条命令的参数0至3,默认0没有写
!$      # 上一条命令的最后一个参数
# 例子
echo a b c d    # 所有下面的语句都要添加该代码
!!:0    # echo
!!:1    # a
!!:4    # d
!!:1-3  # a b c
!!:-3   # echo a b c
!$      # d

子字符串替换

${var/target/replaced}
字符串替换,返回将var变量里的第一个target子串替换为replaced串,
target中可以使用*?通配符,注意这个是字符串替换,不是正则

${var//target/replaced} 同上,全局替换
var="this is input text"
echo ${var/is/as} #thas is input text 将第一个is替换为as
echo ${var/ /_}   #this_is input text 将第一个空格替换为_
echo ${var/ ?/_}  #this_s_input_text  将第一个空格及后面的一个字符替换为_
echo ${var/ */_}  #this_              将第一个空格及后面的所有字符都替换为_
echo ${var/* /_}  #_text              将最后一个空格及前面的所有字符都替换为_
echo ${var// /_}  #this_is_input_text 将所有空格替换为_
标签: ,

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.
回到顶部