linux - 关于shell变量和环境变量

标签 linux shell

我正在阅读 Wrox,开始 Linux 编程。 但是我有一个关于 shell 变量的问题。

这是一个名为 test.sh 的 shell 脚本:

#! /bin/bash
read test
echo $test
exit 0

然后我修改脚本:

$ chmod +x test.sh
$ ./test,sh

当我输入“ok”时,它会回显“ok”。

但是当我回到shell界面时,我输入:

$ echo $test

它什么也没返回...

我不知道为什么 $test 不像脚本那样返回“ok”... 这本书没有提到它......

提前致谢:)

最佳答案

变量只存在于创建它们的进程中(如果它们被导出,也存在于子进程中)。运行脚本会创建一个新进程,脚本结束后,其所有变量都将丢失。

您可以通过“获取”它来运行脚本而无需启动新进程:

. ./test.sh

不过,您应该删除 exit,否则它会退出您当前的 shell。

关于linux - 关于shell变量和环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14643882/

相关文章:

linux - 发送modem AT指令及解析结果

c - lua c 读取嵌套表

c - 减少 char 指针的结果是什么?

linux - 从 fstab 的输出中跳过/数据和/分区

linux - 在 Linux 中替代 KILL 命令

string - 如何用 bash 中的另一个字符替换字符串的最后一个字符?

java - JSch 在一个 session 中执行多个 linux 命令

database - 在 Linux 和 OSX 中创建数据库模型的程序

linux - 无法编译 glib

c - 如何强制 C 程序打印意外结果?