【问题标题】:How to execute a program as variable in bash script?如何在bash脚本中将程序作为变量执行?
【发布时间】:2020-05-18 07:01:48
【问题描述】:

我正在编写一个带有两个输入 prog1 和 prog2 的程序,它们都是文件。我先将这两个变量保存为program1和program2,然后在我的程序中使用./“$program1”和./“program2”执行这两个文件,但是当我使用ls检查时输出是“No such file or directory”这些文件与脚本位于同一目录中。谁能告诉我如何执行它?谢谢!

【问题讨论】:

  • 听起来您还没有使 program1program2 中保存的文件可执行,例如chmod +x filename1 filename2
  • 另外,如果不是拼写错误,您的 ./"program2" 缺少“$”。您可以尝试的一件事是回显变量以确保它包含您想要的内容。

标签: linux bash unix


【解决方案1】:

首先,您的括号似乎不合适 - ./"$program1" 不是一个有效的表达式,要么松开括号,要么这样写:"./$program1"。

然后详细说明大卫的评论:

您可以通过两种方式从脚本运行另一个脚本。一种是让它们像大卫所说的那样可执行。

但是,您也可以使用“source”命令来读取和执行文件的内容,即使它们不可执行。所以以下命令在任何情况下都可以工作:

来源“./$program1”

【讨论】:

    【解决方案2】:

    不要像 ./$prog1 那样执行它,而是像下面那样执行它。

    bash $prog1
    bash $prog2
    

    其中 $prog1 和 $prog2 是具有 bash 脚本路径的变量。

    【讨论】:

    • ./$prog1, etc.. 只要变量引用的文件为运行原始脚本的用户设置了 execute 权限位,就可以正常工作。您的方法也可以,这取决于预期的目的。
    猜你喜欢
    • 2012-10-30
    • 2014-09-19
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 2011-10-16
    • 2022-01-13
    相关资源
    最近更新 更多