- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Ubuntu Natty。
我有一个 shell 脚本,我已保存到/etc/init.d/qstart。 shell 脚本包含以下内容:
apt-get -y update
apt-get -y upgrade
apt-get -y install tofrodos gcc make nmap lsof expect sysstat
dbpass="mydbpassword"
但是,在执行脚本后,我想测试是否设置了 dbpass,然后在提示符中输入 echo $dbpass
。但它是空的。
我如何在我的 shell 脚本中定义一个变量,以便我可以在它之外访问它?!
提前致谢。
最佳答案
您不能在父进程的环境中设置变量。您只能设置当前进程的环境或为进程的子进程准备环境。
也就是说,您可以指示您的 shell 从当前 shell 进程中的脚本运行命令,而不是派生一个新的 shell。你可以这样做:
source your_script.sh
或
. your_script.sh
(注意点后的空格)。由于此处 your_script.sh
中的命令由当前 shell 运行,因此保留了对脚本中环境所做的更改。
但是,如果运行脚本的 shell 不是您希望在其中使用环境变量的 shell 的祖先,那么根本无法使用环境变量实现您的目标。例如,如果您的脚本在初始化时由一些无子 shell 运行,则在那里完成的所有环境设置都将永远丢失,不可逆转。在这种情况下,使用一些其他机制,如文件(可能在 /var
下的某个地方)。
如果您希望给定 shell 的所有实例都在其环境中设置某些变量,您可以使用大多数 shell 使用的初始化脚本。通常,它们有一个系统范围和每个用户的初始化脚本。例如,bash 使用 /etc/profile
作为交互式登录 shell 和 $HOME/.bash_profile
(也 $HOME/.bash_login
和 $HOME/.profile
) 作为每个用户的初始化脚本。参见 this reference有关特定于 bash 的详细信息。如果您使用不同的 shell,请尝试其各自的手册。
关于bash - 如何定义一个 shell 脚本变量以在脚本之外具有作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8153923/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!