python 调用shell设置环境变量_shell脚本可以设置调用shell的环境变量吗?

您将无法修改调用者的shell,因为它位于不同的进程上下文中。当子进程继承shell的变量时,它们将自己继承副本。

您可以做的一件事是编写一个脚本,根据它的调用方式为tcsh或sh发出正确的命令。如果您的脚本是“Setit”,那么请执行:ln -s setit setit-sh

和ln -s setit setit-csh

现在,无论是直接还是在别名中,您都可以从sh执行此操作。eval `setit-sh`

或者来自CSH的这个eval `setit-csh`

Setit使用$0来确定其输出样式。

这让人回想起人们是如何获得术语环境变量集的。

这里的优点是,Setit只是用您喜欢的任何shell编写,如下所示:#!/bin/basharg0=$0

arg0=${arg0##*/}for nv in \

NAME1=VALUE1 \

NAME2=VALUE2do

if [ x$arg0 = xsetit-sh ]; then

echo 'export '$nv' ;'

elif [ x$arg0 = xsetit-csh ]; then

echo 'setenv '${nv%%=*}' '${nv##*=}' ;'

fidone

有了上面给出的符号链接,再加上回溯的表达式,这就有了所需的结果。

为了简化对CSH、tcsh或类似shell的调用:alias dosetit 'eval `setit-csh`'

或者是什,bash,等等:alias dosetit='eval `setit-sh`'

这方面的一个好处是,你只需要在一个地方保持列表。理论上,您甚至可以将列表放入文件中并将cat nvpairfilename在“in”和“do”之间。

这就是过去登录shell终端设置的方式:脚本将输出要在登录shell中执行的状态。别名通常用于简化调用,如“Tset vt 100”中所示。正如在另一个答案中所提到的,InstUsenet新闻服务器中也有类似的功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值