【问题标题】:Inserting Variable into sh Script Command [duplicate]将变量插入 sh 脚本命令 [重复]
【发布时间】:2017-09-11 00:01:54
【问题描述】:
#!/bin/sh -f

set proj_dir="OutputDir"
for projname in lib proj1 proj2
do
    mv ./scripts/$projname_BYTECODE ./$proj_dir/scripts/$projname
done

一个非常简单的例子,说明什么对我来说效果不佳。 $projname_BYTECODE 被解释为变量名,但 _BYTECODE 实际上是文件夹名称的一部分。有什么建议吗?

【问题讨论】:

  • ${projname}_BYTECODE?
  • 你知道,我“试过”了,但是 gedit 上突出显示的语法说它仍然是一个变量,所以我没有真正尝试过。不过,这似乎确实奏效了。你应该回答这个问题。
  • 顺便说一句;您仍然存在一些引用错误 -- shellcheck.net 会捕获它们。
  • set 并没有按照你的想法去做。
  • 是的,我意识到我在发这篇文章时不小心把它放在那里了。我的脚本没有那个,但当时我的 Linux VM 无法复制和粘贴。所以当我打字的时候,我混入了一些我最近正在学习的Tcl/Tk。

标签: shell sh


【解决方案1】:

使用${X} 而不是$X,因此在您的示例中${projname}_BYTECODE 应该可以解决问题。请查看此问题以获取更多信息:When do we need curly braces in variables using Bash?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-14
    • 2021-01-28
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    相关资源
    最近更新 更多