相关疑难解决方法(0)

导出的 shell 变量和不在 bash 中的变量之间的区别

Bash 似乎区分已导出的变量和未导出的变量。

例子:

$ FOO=BAR
$ env | grep FOO
$ set | grep FOO
FOO=BAR
Run Code Online (Sandbox Code Playgroud)

set看到变量但env没有。

$ export BAR=FOO
$ env | grep FOO
BAR=FOO
$ set | grep FOO
BAR=FOO
FOO=BAR
Run Code Online (Sandbox Code Playgroud)

set看到两个变量,但env只看到导出的变量。

我知道这set是一个内置的 bash 而env不是。

导出的变量和不导出的变量之间有什么区别?

shell environment-variables

52
推荐指数
1
解决办法
2万
查看次数

“( set -o posix ; set ) | less ”在做什么?

在我搜索列出所有 shell 变量的命令时,我以某种方式意识到,有一个命令可以列出所有环境变量,但不知何故,由于我不知道的原因,没有人列出所有 shell 变量。

但是,这里有人给出了如何显示所有变量、shell 和环境变量的答案。

( set -o posix ; set ) | less
Run Code Online (Sandbox Code Playgroud)

他其实并没有为外行解释这个表达是做什么的,我的零碎理解还不足以掌握它背后的想法。

这是我所知道的:

  • ( command1; command2)这会导致命令在 shell 的子进程内执行。
  • set是某种声明变量的方法,虽然不知道-o posix是什么意思以及为什么要连续执行第二个set

  • 命令 | 少这个不是问题,即使我理解它,它是一个寻呼机,可以更好地控制输出。

shell environment-variables subshell set

17
推荐指数
2
解决办法
4115
查看次数

如何删除set命令显示的功能?

当 set 命令不带任何选项使用时,它会显示所有 shell 变量和函数的名称和值。

我们只想显示变量并避免输出中的函数。

shell bash set

8
推荐指数
1
解决办法
1709
查看次数

如何打印明显隐藏的环境变量?

环境变量可以用env; 但是,有些没有显示。例如...

echo $EUID可能会产生结果,1000env | grep EUID不会产生结果。

这种类型的变量是什么?只读环境变量?

是否所有 shell 都按照某种约定设置了相同的变量?

如何列出这些隐藏变量?

linux bash zsh environment-variables

6
推荐指数
1
解决办法
4500
查看次数

如何仅显示 shell 变量(而不显示函数)

如何在 Bash 中显示 shell 变量列表(不包括函数),因为许多函数与完成相关,因此经常使输出混乱?

我已经检查过declare,它有一个选项可以将输出限制为函数 ( declare -f),但不能将输出限制为“普通”shell 变量?

bash function variable

3
推荐指数
1
解决办法
972
查看次数

列出我所有的变量

我只是在学习基础知识,包括如何声明和处理变量。有没有一种简单的方法来显示我命名的所有变量的列表?(我通过搜索找到的所有内容都只讨论环境变量,这可能是我正在寻找的,但可能不是?)

bash variable

2
推荐指数
1
解决办法
2189
查看次数

标签 统计

bash ×4

environment-variables ×3

shell ×3

set ×2

variable ×2

function ×1

linux ×1

subshell ×1

zsh ×1