• shell脚本处理备忘


    PLUGIN_DOC="/A/B.tar.gz"

    #获取文件名,包含扩展名B.tar.gz
    DOC_FILE_BASENAME=`basename ${PLUGIN_DOC}`
    #获取文件名,去除扩展名
    DOC_FILE=${DOC_FILE_BASENAME%.tar.gz}
    #将文件名中的特殊符号"-" "." "_" "0到9"之间的数字删除掉,比如有些文件名上带有版本号
    BASE_NAME=`echo ${DOC_FILE} | sed 's/[-._0-9]//g'`

    使用-z或-n判断字符串变量时,必须要用""把变量引起来。

    变量内容修改
    file=/dir1/dir2/dir3/my.file.txt
    可以用 ${ }获取变量中的一部分内容:"#"符号表示从变量的开头扫描,"%"表示从变量的尾部开始扫描

    其中双符号都表示最大匹配,单符号表示一次匹配。
    ${file#*/}: 拿掉第一条 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt
    ${file##*/}:拿掉最后一条 / 及其左边的字符串:my.file.txt
    ${file#*.}: 拿掉第一个 . 及其左边的字符串:file.txt
    ${file##*.}:拿掉最后一个 . 及其左边的字符串:txt
    ${file%/*}: 拿掉最后条 / 及其右边的字符串:/dir1/dir2/dir3
    ${file%%/*}:拿掉第一条 / 及其右边的字符串:(空值)
    ${file%.*}: 拿掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file
    ${file%%.*}:拿掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my
    ${file/.txt/.cpp} 将.txt取代为.cpp:/dir1/dir2/dir3/my.file.cpp


    # 自己编译VIM的参数配置
    VIM_CFG_PARAM="--with-features=huge
    --enable-rubyinterp=yes
    --enable-pythoninterp=yes
    --enable-luainterp=yes
    --enable-perlinterp=yes
    --enable-multibyte
    --enable-sniff
    --enable-fontset
    --enable-cscope
    --disable-gui
    --with-python-config-dir=/usr/local/lib/python2.7/config -q"

    #ctags版本号获取处理
    CTAGS_VERSION=`ctags --version | grep "Ctags" | awk '{print $3}' | sed 's/,//' | awk -F. '{print $1 $2}'`

    #cscope版本号获取处理,注意需要将标准错误重定向到标准输出上,因为这个版本号是通过标准错误给出的。
    CSCOPE_VERSION=`cscope -V 2>&1| sed 's/[^0-9]//g'`

    #python版本号获取处理,同样将非数字字母删除掉,如此就可以得到一个数字进行版本比较处理了。
    PYTHON_VERSION=`python -V 2>&1 | sed 's/[^0-9]//g'`

  • 相关阅读:
    React网络请求fetch之post请求
    从ajax到fetch到axios
    了解 Fetch API与Fetch+Async/await
    new FormData() 前端上传文件图片到服务器
    ES7之async/await同步编程异步函数
    React网络请求fetch之get请求
    React非受控组件
    React 组件优化之函数防抖节流---使用 debounce +throttle 函数
    【LeetCode】86. Partition List
    【LeetCode】122. Best Time to Buy and Sell Stock II
  • 原文地址:https://www.cnblogs.com/eric-geoffrey/p/3262299.html
Copyright © 2020-2023  润新知