如何执行存储在一个bash变量中的两个命令

如何执行存储在一个bash变量中的两个命令,bash,Bash,假设有一个bash变量 run1=“日期” 我需要执行dateby ${run1} 它可以工作,因为它可以打印当前时间。但如果我在变量中放入两个命令 run2=“日期;echo foo” 我无法执行存储在变量run2中的命令,因为${run2}抱怨 日期;:找不到命令 尝试: 这应该会有帮助。试试eval“${run2}”。这将把变量解释为一系列要运行的命令。它可以工作。。。也许我很好奇,但你能解释一下为什么它适用于run1而不适用于run2…因为它被引用了,分号是删除引号后第一个单词的一部分,

假设有一个bash变量

run1=“日期”

我需要执行
date
by

${run1}

它可以工作,因为它可以打印当前时间。但如果我在变量中放入两个命令

run2=“日期;echo foo”

我无法执行存储在变量
run2
中的命令,因为
${run2}
抱怨

日期;:找不到命令

尝试:


这应该会有帮助。

试试
eval“${run2}”
。这将把变量解释为一系列要运行的命令。

它可以工作。。。也许我很好奇,但你能解释一下为什么它适用于
run1
而不适用于
run2
…因为它被引用了,分号是删除引号后第一个单词的一部分,而不是分隔两个命令的语法元素。
eval ${run2}