gpt4 book ai didi

linux - 如何在 linux 中最后一次出现特定命令之前运行所有命令

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:12:40 25 4
gpt4 key购买 nike

例如我有一个包含内容的csh脚本

mkdir tmp
grep string1 file2
rm *
grep string2 ~/file2
setenv a 8
rm *

我只想在最后一次出现 grep 之前执行那些命令,这意味着 setenv 和最后一个 rm 不会运行,但会运行之前的所有命令。有谁知道使用另一个 shell 脚本处理这个脚本的方法? c shell 是首选。提前致谢。

最佳答案

我终于想出了一个方法来做到这一点。由于我的机器只支持c shell,所以我的脚本是在c shell中。

#!/bin/csh

set line_num = "`grep -n 'grep' filename | tail -1 | grep -o '^[0-9]\+'`"
@i = 0
foreach command ("`cat filename`")
@i += 1
$command
if($i == $line_num) then
break
endif
end

第一行找出最后一次出现“grep”的行号然后 foreach 循环简单地使用一个计数器来查看我们是否到达命令。

关于linux - 如何在 linux 中最后一次出现特定命令之前运行所有命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37729690/

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