加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell问题汇总

发布时间:2020-12-15 18:21:30 所属栏目:安全 来源:网络整理
导读:1.?sudo执行脚本找不到变量 当普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本,然后再sudo执行脚本,就找不到变量,未能获取到值,如题情况如下: $ cat demo. sh echo $var1 $ var1 = a1$ expor

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读