gpt4 book ai didi

linux - 非常简单的 Shell 脚本问题 : Making sticky changes?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:25 25 4
gpt4 key购买 nike

我编写 shell 脚本来在 OSX 和 Linux 中做各种事情,但我总是遇到同样的问题。该脚本运行但它对环境(当然除了磁盘)所做的任何更改都不会“坚持”。当脚本终止时,更改将恢复。

如何让我的更改生效?

编辑:很多答案都很好,但它们对我今晚面临的情况没有帮助。我正在尝试运行它以使我的 TAP 界面正常工作

sudo bash # we go superuser
exec 4<>/dev/tap0 # opens device, creates interface tap0
ifconfig tap0 10.10.10.1 10.10.10.255
ifconfig tap0 up

如果我将其粘贴进去,效果会很好,但如果我将其作为源代码或 sh 它,则效果不佳。顺便说一句,之后我无法关闭终端窗口,因为我失去了 tap0 界面。

上次编辑:谢谢大家,答案是按照大家的建议使用源代码,但要从脚本本身中删除 sudo 命令。

最佳答案

这种行为是设计使然 - 至少在我使用的 bash 中是这样,但我认为大多数 shell 的工作方式相同。通常,进程无法将环境变量之类的东西导出到其父进程。如果您想运行一系列命令来更改当前 shell 进程中的环境,您可以做的是将这些命令写入一个文件并获取它。在 bash 中你会输入

$ source commands.sh

$ . commands.sh

关于linux - 非常简单的 Shell 脚本问题 : Making sticky changes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/688254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com