免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1029 | 回复: 5
打印 上一主题 下一主题

[文本处理] 共享变量的讨论贴 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-07-29 13:17 |只看该作者 |倒序浏览
我有这么一个很基础的问题:
假如我有多个脚本,共同完成一项任务,那么我的中间变量如何共享?
如果是export 一个变量,那么关机启动后就不存在,我现在的做法是,将这个变量写到一个文件里,然后所以需要这一系列变量的bash运行前,source这个文件
然后 我就遇到一个很基础的问题,
a=2
b=3
c=cvb
d=n1
这是文件内容,我如何 创建一个函数  fun(a,9)  将a=2 变成a=9呢 ,这个用sed如何实现?
我觉得我解决问题的方法有点蠢,因为我每次判断这些参数的时候,都要source这个文件,以获取最新的值,请问这种问题的通用解决方式是什么的呢?
在线等懂得回复,谢谢。

论坛徽章:
9
操作系统版块每日发帖之星
日期:2016-01-08 06:20:00操作系统版块每日发帖之星
日期:2016-01-28 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-17 17:50:32操作系统版块每日发帖之星
日期:2016-08-01 06:20:0015-16赛季CBA联赛之广东
日期:2016-08-01 16:01:57操作系统版块每日发帖之星
日期:2016-08-04 06:20:00IT运维版块每日发帖之星
日期:2016-08-07 06:20:00操作系统版块每日发帖之星
日期:2016-08-07 06:20:0015-16赛季CBA联赛之福建
日期:2017-03-07 17:14:27
2 [报告]
发表于 2016-07-29 13:33 |只看该作者
本帖最后由 Riet 于 2016-07-29 13:33 编辑

sed -i 's/a=2/a=9/' file

论坛徽章:
9
操作系统版块每日发帖之星
日期:2016-01-08 06:20:00操作系统版块每日发帖之星
日期:2016-01-28 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-17 17:50:32操作系统版块每日发帖之星
日期:2016-08-01 06:20:0015-16赛季CBA联赛之广东
日期:2016-08-01 16:01:57操作系统版块每日发帖之星
日期:2016-08-04 06:20:00IT运维版块每日发帖之星
日期:2016-08-07 06:20:00操作系统版块每日发帖之星
日期:2016-08-07 06:20:0015-16赛季CBA联赛之福建
日期:2017-03-07 17:14:27
3 [报告]
发表于 2016-07-29 13:41 |只看该作者
本帖最后由 Riet 于 2016-07-29 13:48 编辑

如果只是你给出的那几个变量 我这样应该可以了
#!/bin/bash

test() {
        file=/tmp/a
        sed -i "s/$1=.*/$1=$2/" $file
        cat $file   
}

test $1 $2

论坛徽章:
0
4 [报告]
发表于 2016-07-29 13:51 |只看该作者
sed -i  's/a=\(.*\)/a=nilei/g' 1.txt  
我呼叫了我我们运维大爷,他给了答案。应该是可以的 ,
现在我想知道,关于共享变量的事,你们多个shell共同完成一个任务,如何共享这个变量呢????

论坛徽章:
0
5 [报告]
发表于 2016-07-29 13:54 |只看该作者
你跟我们运维大爷的答案差不多^_^,请问你对多个shell共享变量的实现是怎么看的呢?回复 3# Riet


   

论坛徽章:
9
操作系统版块每日发帖之星
日期:2016-01-08 06:20:00操作系统版块每日发帖之星
日期:2016-01-28 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-17 17:50:32操作系统版块每日发帖之星
日期:2016-08-01 06:20:0015-16赛季CBA联赛之广东
日期:2016-08-01 16:01:57操作系统版块每日发帖之星
日期:2016-08-04 06:20:00IT运维版块每日发帖之星
日期:2016-08-07 06:20:00操作系统版块每日发帖之星
日期:2016-08-07 06:20:0015-16赛季CBA联赛之福建
日期:2017-03-07 17:14:27
6 [报告]
发表于 2016-07-29 13:56 |只看该作者
本帖最后由 Riet 于 2016-07-29 14:06 编辑

就是你说的export 至于你说的关机启动没有了 这个是可以解决的。 比如在/etc/profile.d/下新建一个*.sh 把你要的变量写进去就可以了,关机再启动还是有的。

比如 新建一个 test.sh
#!/bin/bash

a=123
export a
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP