在bash中执行字符串中的命令

时间:2012-06-18 07:58:35

标签: bash fastq

我有一个字符串,其中包含我想在bash脚本中执行的命令。我怎样才能做到这一点? 对不起这么基本的问题,但我是bash的新手。 这是我的代码:

echo "What is the path to save the result files?"
read out_path

end_cm1=$"fastqc -o "$out_path$" --noextract -fastq "$files1

我想执行end_cm1变量中的指令。

2 个答案:

答案 0 :(得分:3)

首先,您根本不必将该命令放在字符串中:您可以这样做:

fastqc -o "$out_path" --noextract -fastq $files1

(我建议将$out_path放在引号中以防路径中有空格。我没有将$files1放在引号中因为你的变量是复数所以我假设还有更多不止一个;你也应该注意这些文件名中的空格。)

其次,您提出的问题的答案是eval

eval $end_cm1

答案 1 :(得分:0)

您的字符串中只有轻微的语法问题:

end_cm1="fastqc -o $out_path --noextract -fastq $files1"
$enc_cm1

话虽如此,@是正确的,不需要分配这个 首先是一个字符串,以及所涉及的风险 不引用$files1