如何在tcl中搜索数字即进程ID并杀死进程ID

2024-04-07

我尝试搜索存储在变量 say 缓冲区中的进程 id i-e 6762

nohup tcpdump -ni  eth0 -s0  2>&1 </dev/null &
[1] 6762
You have new mail in /var/mail/root

如果匹配的话我想杀死它。

我尝试过以下代码:

foreach line [split $buffer "\n"]{
    if {[regexp {\[\d\]\s+(\d+)}$line junk pid]}
       break
}

if {[info exists $pid]} {
    puts "PID of nohup is $pid"
}

执行上述代码时出现以下错误



wrong # args: should be "foreach varList list ?varList list ...? command"
    while executing
"foreach line [split $Buffer "\n"]{"
    (procedure "Test_SNMP_Trap" line 21)
    invoked from within
"Test_SNMP_Trap"
    (file "./SNMP_TRY.tcl" line 46)
  

我怎样才能搜索进程ID然后正确地销毁它?


几乎是对的。您需要一个空格来分隔第一个参数和第二个参数。 另外,我会将第一个 \d 更改为 \d+,因为您总是有可能拥有超过 9 个后台作业。

if {[regexp {\[\d+\]\s+(\d+)} $line junk pid]}

Also [info exists ...]作用于变量,而不是值:

[info exists pid]

编辑:添加最终代码片段的示例

中缺少一个空格foreach线。前面需要有一个空格{。和身体if未附上声明。

Tcl 中的解析器的工作方式与某些其他语言不同。行延续和空格很重要。

所以最终的代码将如下所示:

foreach line [split $buffer "\n"] {
    if { [regexp {\[\d+\]\s+(\d+)} $line junk pid] } \
       break
}

if { [info exists pid] } {
    puts "PID of nohup is $pid"
}

if 语句也可以是(更好):

if { [regexp {\[\d+\]\s+(\d+)} $line junk pid] } {
   break
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在tcl中搜索数字即进程ID并杀死进程ID 的相关文章

  • 正则表达式在 Expect 缓冲区中查找字符串

    我正在尝试找到一个可匹配转义字符字符串的正则表达式 Expect 响应 请参阅这个问题 和一个六位数字 第一个字符为字母数字 这是我需要识别的整个字符串 r n u001b 1 14HX76196 最终我需要提取字符串 X76196 这是我
  • Tcl 变量大小限制

    我正在写一个Tcl将在嵌入式设备上使用的脚本 该脚本中变量的值将来自系统上的文本文件 我担心的是 如果源文件太大 可能会导致设备崩溃 因为可能没有足够的内存来存储整个文件 我想知道是否可以限制变量的大小 以便在输入变量时不会耗尽全部内存 另
  • 如何在c代码中使用tcl api

    我想在另一个 c 代码文件中使用我的 tcl 代码的一些功能 API 但我不知道如何做到这一点 特别是如何链接它们 为此 我采用了一个非常简单的 tcl 代码 其中包含一个 API 该 API 将两个数字相加并打印总和 谁能告诉我如何调用这
  • 为什么 Tcler 建议支撑你的“表达”?

    我们可以用两种可能的方式评估两个表达式 set a 1 set b 1 puts expr a b puts expr a b 但为什么讨厌经验丰富的 Tclers 第一个 并认为这是不好的做法呢 第一次使用是否expr有一些安全问题吗 问
  • 如何根据 TCL 数组的键值对其进行排序?

    The INITIAL ARRAY is Key gt Value B 8 C 10 A 5 E 3 D 1 为了获得基于键的排序数组 我使用 set sorted keys array lsort array names INITIAL
  • 如何在 tcl 中使用 split 删除不需要的字符

    这是一个例子 Interface IP Address OK Method Status Protocol FastEthernet0 0 unassigned YES unset administratively down down Fa
  • 如何列出 TCL 实例中的所有命名空间?

    如何列出 tclsh 实例中加载的所有名称空间 Chenz 尝试从 TCLer 运行这个过程Wiki http wiki tcl tk 1489 proc listns parentns set result list foreach ns
  • tcl 脚本从具有相同格式的多个文本文件中提取值并生成基于列的报告

    我有从 Seg Y 文件创建的输出日志 例子 TRACE HEADER MIN MAX MEAN COUNT Trace sequence number within line 001 004
  • TCL 的通用字符串引用

    我正在编写一个实用程序 恰好是在 python 中 它以 TCL 脚本的形式生成输出 给定 python 中的一些任意字符串变量 不是 unicode 我想生成一个 TCL 行 例如 set s something 这将设置 TCL 变量
  • 我可以从 Tcl 中的文件句柄中找到文件名吗?

    如同我可以从 Perl 中的文件句柄中找到文件名吗 https stackoverflow com questions 2813092 can i find a filename from a filehandle in perl但在 Tc
  • 将其放入 TCL 正则表达式中的转义字符串

    I use Expect作为测试框架并编写一些辅助函数来简化匹配模式的键入expect命令 因此 我寻找将任何字符串转换为字符串的函数 其中所有特殊的正则表达式语法都被转义 例如 和其他字符 这样我就可以将任何字符串放入正则表达式中 而不必
  • 如何在tcl中执行子字符串提取和替换

    我正在尝试从 Tcl 中的字符串中提取子字符串 我编写了代码并且能够做到这一点 但我想知道是否还有其他有效的方法来做到这一点 所以确切的问题是我有一个字符串 name ext 10a string 10a string string str
  • 将列表传递给 Tcl 过程

    将列表传递给 Tcl 过程的规范方法是什么 如果我能得到它 以便列表自动扩展为可变数量的参数 我真的很喜欢它 所以像这样 set a b c myprocedure option1 option2 a and myprocedure opt
  • 如何编写具有默认值和选项的 tcl 程序?

    我正在尝试编写一个 tcl 程序 它执行以下操作 proc myProc arg1 def1 arg2 def2 tcl gt myProc arg1 val1 arg2 val2 arg1 variable has val1 arg2 v
  • 如何使用tcl中的puts更改文本颜色

    我想通过使用 tcl 中的 put 命令来更改控制台中显示的文本颜色以简化调试 我看到很多文章是 abt tk 而不是 tcl 仅供参考 我在 Windows 7 上使用 Active tcl 我尝试过其他人提供的以下代码 http www
  • 按值对 Tcl 字典排序

    我想知道 Tcl 中是否有一种按值对 dict 进行排序的优雅方法 假设我有以下字典 set d1 dict create k1 10 k2 89 k3 1 k4 15 k5 20 Results in dict of form k1 gt
  • 在 Tkinter 中处理触摸屏手势

    我将如何在 Tkinter 中安装触摸屏手势处理程序 我需要一些特别简单的事情 每当检测到 展开 手势时就增加字体大小 如果 Tcl Tk 没有具体实现的话 这是否可以在 Tkinter 中实现 我想要么窗口管理器向客户端窗口发送一些我可以
  • 打印大型 TCL 项目的源层次结构

    因此 我正在处理一个大型 TCL 项目 并且认为构建一个树状视图来显示文件在项目中的来源方式会很酷 我修改了源命令以执行以下操作 rename source real source proc source args set file han
  • 执行 tail -F 直到匹配模式

    我想做一个tail F在文件上直到匹配模式 我找到了一种使用方法awk 但恕我直言 我的命令并不是很干净 问题是我need由于某些限制 只能用一行来完成 tail n 0 F tmp foo awk W interactive if 1 E
  • 正则表达式文字-文本范围

    有什么方法可以向正则表达式指示要显式搜索的文本块吗 我问这个问题是因为我必须匹配一段非常非常长的文本 其中包含各种元字符 并且 并且必须完全匹配 然后是一些灵活的内容 足以值得使用正则表达式 然后是更多文本必须完全匹配 冲洗 重复 不用说

随机推荐

  • 为什么堆上的内存分配比堆栈上的内存分配慢得多?

    我已经被告知很多次了 但我不知道为什么 从堆分配内存时会涉及哪些额外成本 与硬件有关吗 与CPU周期有关吗 这么多的猜测 但没有确切的答案 有人能给我一些详细说明吗 正如 unwind 所说 Heap数据结构比Stack更复杂 在我看来 当
  • 在 Azure 移动服务控制器中添加相关数据库条目

    在我的 Azure 移动服务中 我有一个控制器类UserController TableController
  • 有没有一种方法可以用 AngularJS 进行 ng-repeat 覆盖多个数组?

    我有以下循环遍历 xa 并打印 qs a text 值 div div div div div div div div 有没有一种方法可以将这些结合起来 如下所示 div div div div div div 请注意 xa 和 xb 是始
  • 代码镜像。禁用垂直滚动条

    我目前正在使用 CodeMirror 在浏览器的文本区域中编辑代码 如果我有超过 20 行代码 它会在右侧添加一个垂直滚动条 但我不需要这个滚动条 相反 我需要编辑器大小垂直增长 有人可以帮忙吗 在 CodeMirror 3 中 有一个选项
  • 带复选框的嵌套对象 - 即使使用 Accept_nested_attributes_for 也可以进行批量分配?

    我认为应该有一个简单的解决方案来解决这个问题 因为 Rails 2 3 具有这种新奇的嵌套表单功能 基本上我想创建或更新用户并同时为他们分配角色 似乎我做的一切都是正确的 但我收到了错误警告 无法批量分配这些受保护的属性 roles atr
  • 椭圆曲线上的点数

    如果您有以下形式的椭圆曲线 y 2 x 3 a x b mod p 有没有一个好的程序来计算这条曲线上的点数 我已经阅读过有关 Schoof 和 Schoof Elkies Atkin SEA 算法的信息 但我正在寻找开源实现 有谁知道一个
  • “工具提示”不能有逻辑或视觉父级

    我有以下问题 当我尝试为切换按钮设置工具提示样式时 我不断收到 工具提示 不能有逻辑或视觉父错误 什么地方出了错 当我取出 ToggleButton ToolTip 下的工具提示控件时 它可以工作
  • 如何在 Windows 上将 Ruby 添加到 PATH 变量?

    我已经安装了 Ruby 但仍然需要将其添加到 PATH 变量中 我在网上找到了一些关于如何使用命令行手动添加它的信息 set PATH C Ruby200 x64 bin PATH 但在尝试之前 我想确保它不会覆盖 PATH 变量中当前的内
  • 打印后出现奇怪的分段错误

    写了一个简单的交换程序 效果很好 但给出了一个分段故障打印完所有内容后 include
  • WIX 3.9 及更高版本的自定义操作 RegisterComPlus 发生错误

    在 Microsoft 我们长期以来一直使用 WIX 工具集版本 3 5 2519 0 来为我们名为 System Center Service Manager 又名 SCSM 的产品构建安装程序和补丁 最近我们需要更新到 WIX Tool
  • 如何消除混淆矩阵中的白线?

    有谁知道为什么这些白线将我的混淆矩阵分成四部分 我已经更改了许多参数 但无法弄清楚 唯一让它们消失的是如果我根本不标记这些块 即 0 1 但这显然不是我想要的 任何帮助 将不胜感激 Code def plot confusion matri
  • 识别录制声音中的音符 - Python [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道是否可以使用 Python 从录制的声音中提取一系列音符 这是我第一次考虑使用 Python 来完成此任务 帮助真的很棒 您想
  • 如何在任何/所有电子表格上使用 Google Apps 脚本?

    我正在尝试使用 Google Apps 脚本实现电子表格应用程序 但我有几个问题不符合我的要求 我研究了这些问题 但未能找到答案或更好的替代方法来实现此功能 要求 编写可管理 可测试的代码 不是将脚本下载到每个电子表格中 而是以某种方式在安
  • Wicket 重定向:如何传递参数并保持 URL“漂亮”?

    考虑一个重定向到另一个页面的 Wicket 网页 基于此处省略的一些逻辑 public class SomePage extends WebPage public SomePage PageParameters parameters set
  • Python ElementTree find() 在 kml 文件中不匹配

    我正在尝试使用元素树从 kml 文件中查找元素 如下所示 from xml etree ElementTree import ElementTree tree ElementTree tree parse history 03 02 201
  • 为什么在构建视图时要指定数据上下文类?

    当使用下图所示的 添加视图 对话框向 ASP NET MVC 5 项目添加新视图时 我被邀请选择一个模板和一个模型类 这使我能够快速生成一个表单来创建模型的新实例或显示模型属性的视图 但是视图为什么要关心数据上下文类是什么 在我的项目中 无
  • 在 ActionCable 中未找到订阅类“MyChannel”

    我在使用 Action Cable 时遇到问题 每当我运行程序时 我都会收到一条错误消息 Subscription找不到类ConversationChannel 当我尝试发送消息时 我收到此日志 成功升级到WebSocket REQUEST
  • 二维码回车

    如何在 QR 条形码中编码回车符 例如 如果我用 Android 扫描它 它就会出现 A B C 我努力了A d013B d013C等等 但它总是显示转义字符 在我发现的其他方法中 这些方法似乎都不起作用 您只需将正确的字节序列放入 QR
  • 正则表达式中的负向前瞻以排除 R 中的百分比 (%)

    我希望提取具有任意小数的数字 小数点两边至少各有一个数字 但是not模式后跟百分比 因此 我相信我需要一个负前瞻 这样它就可以看到数字后面是否有百分号 为了清楚起见 我想提取 123 123 但不想提取 123 123 我尝试了十几种语法安
  • 如何在tcl中搜索数字即进程ID并杀死进程ID

    我尝试搜索存储在变量 say 缓冲区中的进程 id i e 6762 nohup tcpdump ni eth0 s0 2 gt 1 null 1 6762 You have new mail in var mail root 如果匹配的话