将字符串转换为 Unix 命令

将字符串转换为 Unix 命令

我有变量及其包含字符串

LST_FILE='find \"$2\" \"${TYPE[@]}\" \"${NAME[@]}\" -mmin +\"$HOUR_TO_MIN\"'

如何将相关字符串转为命令?使用 eval 可以吗?或者有任何 eval 的替代品,因为我读到不建议使用 eval 。

eval $LST_FILE

因为我打算执行以下命令,

LST_FILE+='-delete'
eval $LST_FILE

答案1

是的,不推荐eval,并且已经得到解答这里为什么。

现在,我不确定您要做什么,因为您不提供任何上下文、代码和预期结果,但如果您想操作数据以便根据某些条件执行 find ,那么您可以像这样执行:

LST_FILE_DELETE='-delete'
find "$2" "${TYPE[@]}" "${NAME[@]}" -mmin +"$HOUR_TO_MIN" "${LST_FILE_DELETE}"

通常,当解决方案看起来很复杂或者您必须经历几种解决方法时,那么您可能应该再次考虑问题以及如何解决它,很可能您会找到更好的方法来解决它而不使用解决方法。

相关内容