当我使用两个参数/bin/bash ( -c和SomeUserInput )运行该进程时,
其中SomeUserInput是echo $TERM
输出是
xterm-256color
我是否可以通过命令行参数/bin/bash将$TERM的值设置为,以便上面对echo $TERM的调用可以打印我指定的其他内容?
(是的,我在man bash中做了很多调查,并在其他地方搜索过,但是找不到答案;尽管我认为它可能在那里。)
发布于 2013-01-22 21:01:08
首先,由于您使用了双引号,所以它会在当前shell中打印术语的值,而不是您调用的bash。要做到这一点,请使用/bin/bash -c 'echo $TERM'。
要设置术语的值,可以在运行该命令之前先将其设置为export TERM=linux,只对具有TERM=linux /bin/bash -c 'echo $TERM' (shell表达式)或/usr/bin/env TERM=linux /bin/bash -c 'echo $TERM' (execve兼容的)的shell设置它(如查找-exec)。
Update:对于只使用命令行参数到/bin/bash的编辑,您可以这样做,而不必像这样修改输入:
/bin/bash -c 'TERM=something; eval "$1"' -- 'SomeUserInput'发布于 2013-01-22 20:57:45
好的,您可以在.bashrc文件上设置变量,也可以简单地使用bash调用设置:
/bin/bash -c "TERM=something-else; echo $TERM"https://stackoverflow.com/questions/14467809
复制相似问题