当我运行/bin/bash有两个参数的过程中-c和SomeUserInput,
其中SomeUserInput是 echo $TERM
输出是
xterm-256color
有没有办法可以通过命令行参数/bin/bash设置$ TERM的值,以便上面的调用echo $TERM会打印我指定的其他东西?
(是的,我已经做了很多挖掘man bash和搜索其他地方,但找不到答案;虽然我认为它可能存在.)
首先,由于您使用了双引号,因此在当前shell中打印TERM的值,而不是您调用的bash.为此,请使用/bin/bash -c 'echo $TERM'.
要设置TERM的值,您可以export TERM=linux在运行该命令之前,仅使用TERM=linux /bin/bash -c 'echo $TERM'(shell表达式)或/usr/bin/env TERM=linux /bin/bash -c 'echo $TERM'(execve compatible(对于find -exec))为该shell设置它.
更新:对于仅使用命令行参数的编辑/bin/bash,您可以在不修改输入的情况下执行此操作,如下所示:
/bin/bash -c 'TERM=something; eval "$1"' -- 'SomeUserInput'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15529 次 |
| 最近记录: |