我应该如何在 bash 中导出 shell 变量?

Ano*_*don 3 solaris shell export

我通常在 Linux 中使用 bash,如果我需要导出一个变量,我可能会写:

export LC_ALL=C
Run Code Online (Sandbox Code Playgroud)

但是,这些天我正在做更多的 Solaris 工作,与我一起工作的 Solaris 管理员总是会这样写:

LC_ALL=C ; export LC_ALL
Run Code Online (Sandbox Code Playgroud)

是否有理由更喜欢后者而不是前者?

我猜想前者可能无法被某些 shell 识别。哪个?

谢谢。

Geo*_*itz 5

我相信真正的 Bourne shell(许多商业 Unix 变体上的 /bin/sh)不支持单个语句中的赋值和导出。这就是我在 Solaris 上的日子里的记忆。

我不知道新的 Solaris 版本现在是否默认使用 bash。无论如何,你的后一种情况更便携,所以我会坚持下去。