0
我有一个脚本如下:shell脚本 - 运行分配给一个变量返回一个脚本“命令未找到”
var1=some_val1
var2=some_val2
var3=some_val3
varX=another_script.sh ${var1} ${var2} ${var3}
我收到以下错误:
./script.sh: line 5: some_val1: command not found
如何获得它运行正常吗?该脚本基本上采用这些参数并运行Hive查询。如果我将Hive查询替换为another_script.sh blah blah blah
,则它可以很好地工作,并且变量会捕获稍后在脚本中使用的值。我尝试交换它使其更加抽象,并且我遇到了这个问题。请帮忙。谢谢!
壳正在解释的线如在'A = B命令ARG1 arg2',的它运行'command'与环境变量'形式存在a'设为值'b'。因此,在运行'var1'命名的命令时(假设只扩展为一个字,除非您修复引用后才能保证),则将环境变量'varX'设置为值another_script.sh'。 –
@CharlesDuffy:+1解释为什么会发生这种情况。谢谢! :) – CodingInCircles
...我的意思是“修复你的引用”是'another_script.sh“$ var1”“$ var2”“$ var3”'将确保'var1','var2'和'var3'每个都只是一个参数传递,而你当前的代码没有这样的保证 - 每个变量扩展可以是零个参数或几个(如果它们包含空白或水平字符)。 –