3
我遇到以下问题。我需要创建系统范围的变量JDK_HOME
和JAVA_HOME
变量。首先,我想创建/etc/profile.d/java.sh
并将 JDK_HOME
添加到它。然后我想追加JAVA_HOME
到这个文件。到目前为止,我有这个代码。从bash脚本添加到/etc/profile.d失败
#!/bin/bash
create_env_var()
{
local varname="$1"
local varvalue="$2"
local filename="/etc/profile.d/$3"
if [ -e "$filename" ]; then
echo "**ERROR: file $filename already exists"
else
sh -c 'echo "$varname=$varvalue" > $filename'
chmod +x "$filename"
fi
}
append_env_var()
{
local varname="$1"
local varvalue="$2"
local filename="/etc/profile.d/$3"
if [ ! -e "$filename" ]; then
echo "**ERROR: file $filename not found"
else
sh -c 'echo "$varname=$varvalue" >> $filename'
chmod +x "$filename"
fi
}
create_env_var "JDK_HOME" "/usr/lib/jvm/java-7-openjdk-i386" "java.sh"
append_env_var "JAVA_HOME" "/usr/lib/jvm/java-7-openjdk-i386" "java.sh"
exit "$?"
然而,这些线不工作,我会看到以下错误:
sh: 1: cannot create : Directory nonexistent
chmod: cannot access ‘/etc/profile.d/java.sh’: No such file or directory
请你告诉我在哪里一切都错了吗?
变量'varname','varvalue'和'filename'在此声明''回声“$ VARNAME = $ varvalue“> $ filename''用单引号括起来,所以它们不会被扩展,而是使用双引号:''echo $ varname = $ varvalue> $ filename”' – hflzh
请zhliu03 wai一会儿。我会试试 –
Thanx,zhliu03,你刚刚救了我......我怎样才能标记你的答案有帮助? –