Bash scl启用访问源shell参数
我正在一个shell脚本中激活一个scl python环境,并希望根据参数定制安装VirtualEnvironment。但是,我无法将变量从shell/bash脚本传递到激活scl环境时创建的子shell中。如何访问shell/bash脚本中定义的参数Bash scl启用访问源shell参数,bash,shell,redhat,Bash,Shell,Redhat,我正在一个shell脚本中激活一个scl python环境,并希望根据参数定制安装VirtualEnvironment。但是,我无法将变量从shell/bash脚本传递到激活scl环境时创建的子shell中。如何访问shell/bash脚本中定义的参数 $ARG=argument scl enable rh-python36 << SS echo $ARG SS 我对scl一点也不熟悉,但我可以指出您正在做的shell部分的一些错误: 使用带有变量的$来获取它们的值,而不是在设
$ARG=argument
scl enable rh-python36 << SS
echo $ARG
SS
我对scl一点也不熟悉,但我可以指出您正在做的shell部分的一些错误:
- 使用带有变量的
来获取它们的值,而不是在设置它们时。因此,$
应该是$ARG=argument
。顺便说一句,您给出的错误消息实际上与此问题不匹配;它看起来更像是ARG=argument
(例如=
)周围的空格,这是不允许的,因为它将ARG=argument
视为命令,“ARG
”和“=
”作为传递给它的参数。一般来说,空格是shell中重要的分隔符,添加或删除它们(即使在外观不重要的地方)可以完全改变命令的含义argument
- 默认情况下,变量是shell本身的私有变量。要使变量可用于
(以及在shell中运行的任何其他命令),您需要scl
导出它。因此,您实际上想要:
export ARG=argument
- 我建议不要使用all caps变量名,因为有许多all caps名称具有特殊含义;将其中一个用于其他用途可能会产生奇怪的效果。小写和混合大小写变量名更安全
- 在常规here文档中(包含
export ARG=argument