linux - 使用 tcsh 中的 if 条件进行模式匹配

标签 linux unix pattern-matching csh tcsh

我正在尝试各种组合来使用 tcsh 进行模式匹配(无法避免 tcsh)。我运行命令,然后解析(使用空格)它。效果很好。但是,当我想从中获取数字时,它不会进行模式匹配。
它永远不会进入 if 循环来给我“循环”输出。

echo "Command: $command\n"
set tg_activity = `$command`
foreach abc (`echo $tg_activity`)
echo "The part is: $abc"
 if ( "$abc" =~ ^[0-9]* ) then
   echo "loop"
   set job_id = "$abc"
   break
 endif
echo "No If\n"
end

如果我在 if 条件中使用 $abc 而不是“$abc”,则会出现错误“if:缺少文件名。”。 “$abc”在这里工作得很好,因为它与任何 (*) 进行模式匹配并给出“循环”输出。问题出在条件语句中(缩小范围)。我如何在这里进行模式匹配。请指教

最佳答案

foreach elem ($tg_activity:q) if ($elem:q =~ [0-9]*[0-9]?) 那么 设置 job_id = echo $elem:q 休息 万一 结束

以上对我有用

关于linux - 使用 tcsh 中的 if 条件进行模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24111062/

相关文章:

linux - 如何在unix中分配命令的输出

linux - 在 UNIX 中捕获模式的值并写入另一个文件

linux - 何时使用 TCP 打洞技术以及为什么使用它?

linux - 如何重定向 bash 中的所有 stderr?

linux - Linux 中特定时间间隔的 CPU 事件的细粒度日志记录

linux - 如何在 Linux 下使用属于子用户命名空间的文件?

linux - 如何在 linux 中使用 perl 从显示的输出中提取数字

linux - 在没有getopts的shell脚本中添加使用内容

F# 模式匹配出错

linux - 模式搜索 Grep