Bash 评估无效命令
Bash Eval invalid command
我在 .sh 文件中有以下场景
hello="java -cp \"/home/user/libs/*\" org.user.class parameter"
echo "$hello"
eval $($hello)
如果我尝试 运行 .sh 文件,我会收到以下异常错误:无法找到或加载主 class,但如果我执行打印的内容,应用程序将启动。
有什么转义可以避免这个问题吗?
首先,阅读:I'm trying to put a command in a variable, but the complex cases always fail!。
如果您真的必须这样做,请不要使用变量。使用 数组 。尝试:
hello=(java -cp "/home/user/libs/*" org.user.class parameter)
"${hello[@]}"
似乎必须删除 eval 表达式的括号。
正确的语法是:
hello="java -cp \"/home/user/libs/*\" org.user.class parameter"
echo "$hello"
eval $hello
我在 .sh 文件中有以下场景
hello="java -cp \"/home/user/libs/*\" org.user.class parameter"
echo "$hello"
eval $($hello)
如果我尝试 运行 .sh 文件,我会收到以下异常错误:无法找到或加载主 class,但如果我执行打印的内容,应用程序将启动。
有什么转义可以避免这个问题吗?
首先,阅读:I'm trying to put a command in a variable, but the complex cases always fail!。
如果您真的必须这样做,请不要使用变量。使用 数组 。尝试:
hello=(java -cp "/home/user/libs/*" org.user.class parameter)
"${hello[@]}"
似乎必须删除 eval 表达式的括号。
正确的语法是:
hello="java -cp \"/home/user/libs/*\" org.user.class parameter"
echo "$hello"
eval $hello