相关疑难解决方法(0)

在bash中的命令之前设置环境变量不适用于管道中的第二个命令

在给定的shell中,通常我会设置一个或多个变量,然后运行一个命令.最近我了解了将变量定义添加到命令的概念:

FOO=bar somecommand someargs
Run Code Online (Sandbox Code Playgroud)

这工作......有点儿.当你改变一个LC_*变量(它似乎影响命令而不是它的参数,例如'[az]'字符范围)或者输出到另一个命令时,它不起作用:

FOO=bar somecommand someargs | somecommand2  # somecommand2 is unaware of FOO
Run Code Online (Sandbox Code Playgroud)

我可以在"FOO = bar"之前添加somecommand2,但是它可以添加不需要的重复,但它对根据变量解释的参数没有帮助(例如'[az]')

那么,在一条线上做这件事的好方法是什么?我正在考虑以下顺序:

FOO=bar (somecommand someargs | somecommand2)  # Doesn't actually work
Run Code Online (Sandbox Code Playgroud)

编辑:我有很多好的答案!目标是保持一个单行,最好不使用"导出".使用bash调用的方法总体上是最好的,尽管带有"export"的括号版本更紧凑.使用重定向而不是管道的方法也很有趣.

bash environment-variables

333
推荐指数
5
解决办法
22万
查看次数

如何仅在脚本的持续时间内设置环境变量?

在bash上的Linux(Ubuntu 11.04)上,是否可以临时设置一个环境变量,该变量在脚本持续时间内只与普通变量不同?例如,在shell脚本中,通过临时将HOME设置为当前工作目录中的文件夹,然后启动应用程序,使应用程序保存到HOME便携式.

linux bash environment-variables

108
推荐指数
3
解决办法
9万
查看次数

标签 统计

bash ×2

environment-variables ×2

linux ×1