zoukankan      html  css  js  c++  java
  • shell问题汇总

    1. sudo执行脚本找不到变量

    当普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本,然后再sudo执行脚本,就找不到变量,未能获取到值,如题情况如下:

    $ cat demo.sh 
    echo $var1 
    $ var1=a1
    $ export var1                       # export 变量 
    $ sudo echo $var1                   # sudo执行echo命令,返回变量值 
    >>>a1
    $ sudo bash demo.sh                # sudo执行脚本,不能获取变量值 
     
    $ bash demo.sh                     # 普通用户执行脚本,返回变量值 
    >>>a1

    # 解决方案
    $ sudo -E bash demo.sh  # sudo 带-E参数,可以获取变量值
    >>>a1
     

    具体原因还有其他解决方案见http://blog.sina.com.cn/s/blog_4da051a60102uyvg.html

    2. 替换变量中的字符

    $ BRANCH_NAME=feature/ss_tracking
    
    $ echo $BRANCH_NAME
    
    >>>feature/ss_tracking
    
    $ echo ${BRANCH_NAME///-}
    
    >>>feature-ss_tracking

    3. sed遍历替换

    #linux
    find features -type f |while read file;do sed -i 's/context.feature.mongo/context.mongo/g' $file;done
    
    #mac
    find features -type f |while read file;do sed -i "" 's/context.feature.mongo/context.mongo/g' $file;done

  • 相关阅读:
    this关键字
    方法重载和方法重写
    构造方法
    Java数据类型以及变量的定义
    Java 语言概述
    Java Socket通信
    类图
    JAVA语言编程注意事项
    Scanner--控制台输入
    java运算符
  • 原文地址:https://www.cnblogs.com/smileyes/p/10374567.html
Copyright © 2011-2022 走看看