导出不在shell中工作

时间:2015-11-02 11:27:51

标签: linux bash shell

下面我贴了我的例子 -

#!/bin/sh
#. /root/file.txt 
su - root -c "/bin/sh" << EOF        
if [[ -f /root/file.txt ]] ; then

. /root/file.txt 
export X=$X:/nobin  <-- not exporting correctly. Incase line no 2 is uncommented, it works.
else

echo "ERROR: /root/path.txt file is missing"
     exit 1
fi

echo "myexecutable_binary 2>&1"   
EOF

echo $?

echo "here"

/root/file.txt

X="/usr/usr1:/usr/usr2"


export X

echo $X

正如我在上面强调的那样,出口存在一些问题。请帮我解决这个问题。

Linux- Linux 2.6.18-348.el5

1 个答案:

答案 0 :(得分:0)

您的此处文档正在由当前shell进行插值。我猜你在运行这个程序的shell中没有定义变量X。我还推测你真正想要的是脚本不被插值。一个简单的解决方法是引用heredoc分隔符; <<'EOF' EOF周围带有单引号的$numbers = $client->account->available_phone_numbers->getList('US', 'Local', array( "AreaCode" => "510" )); foreach($numbers->available_phone_numbers as $number) { echo $number->phone_number; }