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