当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 9 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 如何在执行文件中自动实现文档的编辑?
帖子发表于 : 2016-07-07 12:17 

注册: 2016-06-30 20:08
帖子: 17
送出感谢: 8
接收感谢: 0 次
最近在写一个简单的安装调用包,里面需要编辑profile文档,增加PATH变量

怎么在.sh文档中实现打开/etc/profile并在最后一行 添加固定的代码?

目前我不得不写成两个可执行文件,执行完第一个之后手动增加环境变量再执行第二个


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 如何在执行文件中自动实现文档的编辑?
帖子发表于 : 2016-07-07 12:26 
头像

注册: 2011-03-20 13:12
帖子: 4552
地址: 山东省寿光县
系统: Debian
送出感谢: 106
接收感谢: 1009
简单追加内容 重定向 >> 或用 tee -a 即可
复杂需求 使用 ed/sed/awk 一类工具

例 在 /etc/profile 最后增加 export AAA=ccc
代码:
echo "export AAA=ccc" | tee -a /etc/profile


代码:
echo "export AAA=ccc" >> /etc/profile


_________________
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户



_________________
评价: 3.7% guistar
 
页首
 用户资料  
 
3 楼 
 文章标题 : Re: 如何在执行文件中自动实现文档的编辑?
帖子发表于 : 2016-07-07 13:44 

注册: 2007-01-14 16:23
帖子: 4350
送出感谢: 0 次
接收感谢: 109
如果是一次性使用的变量,直接在脚本里面声明 export下不就完了么 :What 还是说,你这个就是要编辑profile文件?如果要增加系统变量,建议在/etc/profile.d下面新建个文件(不是说不让编辑profile,只是这样比较不容易把profile搞乱)


_________________
#include <stdio.h>
void main()
{
double world;
unsigned letter;
short stay;
long memories;
printf("I miss you.\n");
}



_________________
评价: 3.7% guistar
 
页首
 用户资料  
 
4 楼 
 文章标题 : Re: 如何在执行文件中自动实现文档的编辑?
帖子发表于 : 2016-07-07 14:18 

注册: 2016-06-30 20:08
帖子: 17
送出感谢: 8
接收感谢: 0 次
vickycq 写道:
简单追加内容 重定向 >> 或用 tee -a 即可
代码:
echo "export AAA=ccc" >> /etc/profile


我用root权限执行的时候系统提示我权限不够,用root身份执行时没有问题。那么是否意味着我执行这个shell文件时也要用root身份执行才行?

事实上,source命令也提示权限不够,要在root身份下执行。目前我在一个全新的ubuntu14.04系统上debug,不知道是否由于缺少安装某个包,还是说这两个命令本来就只能在root身份下执行呢?


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 如何在执行文件中自动实现文档的编辑?
帖子发表于 : 2016-07-07 14:21 

注册: 2016-06-30 20:08
帖子: 17
送出感谢: 8
接收感谢: 0 次
onlylove 写道:
如果是一次性使用的变量,直接在脚本里面声明 export下不就完了么 :What 还是说,你这个就是要编辑profile文件?如果要增加系统变量,建议在/etc/profile.d下面新建个文件(不是说不让编辑profile,只是这样比较不容易把profile搞乱)


谢谢。我google了下profile中有个执行profile.d下文件的loop,刚刚亲自试了下确实可行。


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 如何在执行文件中自动实现文档的编辑?
帖子发表于 : 2016-07-07 14:33 
头像

注册: 2011-03-20 13:12
帖子: 4552
地址: 山东省寿光县
系统: Debian
送出感谢: 106
接收感谢: 1009
guistar 写道:
我用root权限执行的时候系统提示我权限不够,用root身份执行时没有问题

具体说明 如何使用 root 权限执行的?

若需使用 sudo:
代码:
echo "export AAA=ccc" | sudo tee -a /etc/profile


代码:
sudo bash -c "echo 'export AAA=ccc' >> /etc/profile"


_________________
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 如何在执行文件中自动实现文档的编辑?
帖子发表于 : 2016-07-07 15:33 

注册: 2016-06-30 20:08
帖子: 17
送出感谢: 8
接收感谢: 0 次
vickycq 写道:
guistar 写道:
我用root权限执行的时候系统提示我权限不够,用root身份执行时没有问题

具体说明 如何使用 root 权限执行的?

若需使用 sudo:
代码:
echo "export AAA=ccc" | sudo tee -a /etc/profile


代码:
sudo bash -c "echo 'export AAA=ccc' >> /etc/profile"



我之前直接在前面加上sudo, 即 sudo echo "xxx">> /etc/profile,提示权限不够。切换root身份执行就没问题。

代码:
sudo bash -c "echo 'export AAA=ccc' >> /etc/profile"

这个代码我今晚试试对比一下。目前电脑在跑这个


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 如何在执行文件中自动实现文档的编辑?
帖子发表于 : 2016-07-07 15:51 
头像

注册: 2011-03-20 13:12
帖子: 4552
地址: 山东省寿光县
系统: Debian
送出感谢: 106
接收感谢: 1009
guistar 写道:
我之前直接在前面加上sudo, 即 sudo echo "xxx">> /etc/profile,提示权限不够。切换root身份执行就没问题。

sudo 只负责将字符串 echo 到标准输出,而重定向是由不具备 root 权限的当前 shell 执行的。

可用 sudo 新开一个 shell 执行
代码:
sudo bash -c "echo 'xxx' >> /etc/profile"

或通过 sudo 使用 tee
代码:
echo "xxx" | sudo tee -a /etc/profile


参考 http://askubuntu.com/a/230500


_________________
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户



_________________
评价: 3.7% guistar
 
页首
 用户资料  
 
9 楼 
 文章标题 : Re: 如何在执行文件中自动实现文档的编辑?
帖子发表于 : 2016-07-08 13:06 

注册: 2016-06-30 20:08
帖子: 17
送出感谢: 8
接收感谢: 0 次
vickycq 写道:
代码:
sudo bash -c "echo 'xxx' >> /etc/profile"

或通过 sudo 使用 tee
代码:
echo "xxx" | sudo tee -a /etc/profile


参考 http://askubuntu.com/a/230500



昨晚试了,是可行的操作,谢谢你!


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 9 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译