将值分配给ksh中的变量

时间:2014-07-24 11:00:43

标签: ksh

我试图找到一种方法来为文件中的变量赋值。 我的文件有

PID=1
VALUE=1000
CMD=/usr/bin/ls -l

我想分配" ="的正确部分;符号作为左侧名称的值,此左侧名称应视为变量名称。

应该就像当我打印$ PID时,我应该得到1,当我打印$ VALUE时我应该得到1000,当我打印$ CMD我应该得到/ usr / bin / ls -l, 我尝试使用eval,但没有工作。任何帮助表示赞赏??。

1 个答案:

答案 0 :(得分:1)

在文件调用前使用.。这在当前shell中执行文件

. YourFile
echo $PID

1

但这对于CMD来说会失败,因为这不是正确的字符串(没有引用),也不是一个动作(不是后引用或eval或$( )所以要使用它是carrefull。 解决方案(基本,无法控制内容类型和=之后的格式):

sed -n -e '/[[:alnum:]_]\{1,\}=/ s/=\(.*\)$/="\1"/p' YourFile > /tmp/ToVar.tmp
. /tmp/ToVar.tmp
rm /tmp/ToVar.tmp