> /tmp/log1 2>&1" ADD_OPTION=($OPTION) ls ${ADD_OPT-6ren">
gpt4 book ai didi

linux - 如何传递变量来执行外部操作而不是 bash 中的命令参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:45:56 26 4
gpt4 key购买 nike

我想在 bash 中做一个输出重定向,以便在 shell 中传递变量。

例如:

OPTION=">> /tmp/log1 2>&1"
ADD_OPTION=($OPTION)
ls ${ADD_OPTION[@]}

我想在 /tmp/log1 中记录 ls 命令的结果。从而,ls >>/tmp/log1 2>&1 被执行。

但不幸的是,${ADD_OPTION[@]} 被视为 ls 的参数。实际结果是:

ls: >>: No such file or directory
ls: /tmp/log1: No such file or directory
ls: 2>&1: No such file or directory

我应该为它做什么?

最佳答案

你可以使用eval:

eval ls ${OPTION}

作为一个明显的注意事项,请注意 eval

示例:

$ OPTION=">> /tmp/log1 2>&1"

$ eval ls ${OPTION}

$ cat /tmp/log1
1
2
3

关于linux - 如何传递变量来执行外部操作而不是 bash 中的命令参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37131101/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com