【问题标题】:Add constructed command to bash history将构造命令添加到 bash 历史记录
【发布时间】:2020-01-03 00:12:59
【问题描述】:

我创建了一个 bash 函数来检索 cron 任务列表(来自 Magento)。我可以立即使用 FZF 搜索该(过滤的)列表,并通过 xargs 使用另一个命令运行选定的 cron。函数如下:

crf () { magerun2 sys:cr:li | grep -E '\*|-' | grep -v '+' | awk '{print $2}' | fzf --query=$1 | xargs magerun2 sys:cr:run; }

是否可以将刚刚通过 xargs 的命令添加到历史记录中,这样当我按下 up 箭头时,它会显示刚刚通过 xargs 的命令?

我在 Macbook Pro 上运行,使用 bash 版本 5.0.11(1)-release (x86_64-apple-darwin18.6.0) 和 tmux 3.0。

【问题讨论】:

    标签: bash


    【解决方案1】:

    是的,使用history -s

    $ history -s my command
    <PRESS UP KEY>
    $ my command
    

    编辑: 所以在你的情况下,它会像

    crf () { 
    
    CHRON=$(magerun2 sys:cr:li | grep -E '\*|-' | grep -v '+' | awk '{print $2}' | fzf --query=$1 ) 
    
    for item in $CHRON ; do
        history -s $item
        magerun2 sys:cr:run $item
    done 
    }
    

    【讨论】:

    • 更新了更多信息
    • 像魅力一样工作!我之前尝试将 history -s 放在单行命令中,这是某种形式的带有 xargs 的多命令,但这不起作用。但是,您的解决方案按预期工作。
    • @Kozie,太棒了。如果这有帮助,请将答案标记为正确。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2014-07-01
    • 1970-01-01
    • 2017-01-01
    • 2014-11-03
    • 1970-01-01
    • 1970-01-01
    • 2019-10-22
    • 2017-10-04
    相关资源
    最近更新 更多