gpt4 book ai didi

linux - 为什么 bash 历史扩展在函数中不起作用?

转载 作者:太空宇宙 更新时间:2023-11-04 09:45:05 24 4
gpt4 key购买 nike

当我编程时,我会发现自己循环执行相同的三个 shell 命令,例如:

  1. vim myGraphic.cpp
  2. g++ -lglut -lGLU myGraphic.cpp -o prettyPicture
  3. ./prettyPicture

为了避免每次都按三次上箭头键,我将以下内容放入我的 bashrc 中:

function cyc { 
CYCLE=3
!-$CYCLE
}

但是,当我使用“cyc”函数时,出现错误

"bash: !-3: command not found".

这种历史扩展技术与 shell 交互工作,但它似乎不适用于函数定义。这种差异的解释是什么?我如何制作一个与“cyc”等效的函数?

最佳答案

此问题已在此处提出:use "!" to execute commands with same parameter in a script但简而言之,您需要

set -o history
set -o histexpand

在您的脚本中启用历史扩展。

关于linux - 为什么 bash 历史扩展在函数中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17000841/

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