
CShell/Tcl语法详解与实战技巧
文章平均质量分 77
欢迎关注本专栏,专注于Cshell、Bash和Tcl等脚本语言的语法详解与实战技巧分享。适合系统运维、自动化测试及IC设计验证等相关领域的开发者学习与参考。通过简洁明了的示例和实际应用场景解析,帮助你快速掌握脚本编写技巧,提升开发效率与自动化水平。持续更新,干货不断,助你轻松驾驭脚本编程。
元直数字电路验证
天地本無心,生民自有命,往聖無絕學,萬世不太平。硅農,因bug而生,與bug為伴,以debug為生。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[gvim].vimrc中的一些智能化设置
摘要:本文介绍如何通过.vimrc文件配置Vim/Gvim实现智能编程功能。主要内容包括:1)基础设置(语法高亮、行号显示等);2)智能缩进与空格管理(tabstop、expandtab等);3)自动补全配置(omnifunc、Tab映射);4)语言特定设置(Python/C++等);5)gvim界面优化(隐藏菜单栏)。文中提供了完整的.vimrc配置示例,并详细说明了vim-plug插件管理器的安装使用方法。这些设置可显著提升编码效率,支持语法高亮、智能缩进、自动补全等核心功能,同时保持配置轻量级且兼容大原创 2025-08-10 12:27:34 · 65 阅读 · 0 评论 -
[Cshell]alias定义中包含引号的处理方法,以及嵌套引号的区分
在csh/tcsh中处理alias中的引号需要特殊技巧:1) 使用不同类型的引号嵌套(如外部单引号内部双引号);2) 通过反斜杠转义内部引号;3) 注意参数传递使用!*等特殊变量。单引号保持字面值,双引号允许变量扩展,但历史替换(!)需要转义。复杂嵌套建议交替使用引号类型或层层转义,并注意csh/tcsh对单引号内变量扩展的限制。定义后需测试并持久化到~/.cshrc文件。原创 2025-08-10 11:48:26 · 442 阅读 · 0 评论 -
Makefile关键语法示例
可以通过在顶层 Makefile 中定义一组 Testcase、循环运行每个 testcase,并把日志分目录保存,最后 grep 出 PASS/FAIL,再汇总成 CSV 报表。如何使用Makefile实现UVM测试用例的批量运行和结果收集?能否提供一个更复杂的Makefile例子,包含多个子模块和条件编译?这些例子涵盖了UVM SoC验证中常用的Makefile技巧,包括递归构建、自动依赖、条件编译、并行执行等关键功能。这个示例可以根据项目需求扩展更多子模块、更多测试、或加入并行执行(原创 2025-06-14 09:53:49 · 403 阅读 · 0 评论 -
[Cshell]用sed替换包含单引号的字符串
在Linux中,经常用的替换命令非sed莫属,但是sed也有失灵的时候,比如SV中的address和data,例如:32'h1020_0180等等。此时要做替换的话该怎么办呢?下面介绍寄几种方法来实现sed替换包含单引号的字符串。原创 2023-04-14 20:47:44 · 2469 阅读 · 0 评论 -
[Linux]Linux中自动切换项目账户
Linux中自动切换项目账户摘要:在Linux中,我们可能经常需要切换项目账户,需要用su命令,并输入密码,如果是要开多个Terminal的话,就需要多次输入,很麻烦。今天分享一个小脚本,一条命令搞定账户切换。一、脚本源码#!/usr/bin/expectspawn su - dv_60842expect "Input Passward:"send "123456\r"interact二、使用方法 假如上述脚本在lgsoc这个文件中,位于HOME目录...原创 2022-03-12 11:49:35 · 1940 阅读 · 0 评论 -
Makefile 变量与宏
Makefile 变量与宏一、Makefile 变量与宏 变量和宏其实说的是同一东西。一个变量的内容是一个字符串,从一个变量名获得变量内容的过程叫做变量的扩展,用$()或者${}扩住变量名即可。而不像编程语言那样,使用变量名就能引用变量的值。二、变量的类型 make的变量有两种:简易变量和递归扩展的变量。变量的定义是一个赋值动作,把等号右边的内容赋给左边。这里等号可以有多种::=、=、?=,他们决定了怎样赋值。等号两边的东西可以只是字面值,或者含有变量。赋值时...转载 2021-09-18 15:09:19 · 2238 阅读 · 0 评论 -
Makefile简介
Makefile简介一、背景 程序设计通常有一个固定的流程:编辑源代码文件、将源代码文件编译成可执行文件以及对成果进行调试。make程序可以让将一个项目中的源文件编译成可执行文件之类的工作自动化。make这个词的意思是“制作”,你想制作什么后面就加什么参数,制作的方法也就是配方需要你指定,也就是makefile中的规则。 如果你会shell编程的话,你会发现上述功能写个脚本也能做到。相对于脚本,make的优点是:它可以根据文件之间的依赖关系和时间戳判断应该重新执行那些...转载 2021-09-18 08:57:23 · 298 阅读 · 0 评论 -
[Linux]用sed命令删除行或者字符串
用sed命令删除行或者字符串一、sed命令常用到的两个选项:-i : 直接在文件上编辑 (edit files in place) -e[默认选项]:只在命令行输出,而文件不改变(add the script to the commands to be executed)注:使用sed命令可以使用 -i 或者 -e 选项(以下例子仅以-i举例)1.1 sed命令删除特定行号删除第N行sed -i 'Nd' filename删除第N~M行sed -i 'N,Md' file.原创 2021-08-12 16:52:59 · 4965 阅读 · 0 评论 -
[Linux]用sed命令在行首或行位插入字符串
在行首或行位插入字符串原创 2021-07-19 18:12:44 · 9528 阅读 · 2 评论 -
[cshell]个性化配置你的cshrc/tcshrc
本文介绍了csh/tcsh shell的配置优化方法,主要包括:1. 配置文件管理(全局和个人配置);2. 按键绑定设置(解决远程登录按键问题);3. 提示符个性化(包含颜色配置方案);4. 环境变量设置(如LSCOLORS、CLICOLOR等);5. 安全防护措施(防误删、防覆盖等);6. 实用alias命令集(简化操作、提高效率)。文章提供了详细的配置示例,并建议通过man tcsh获取更多帮助信息。这些配置能显著提升shell使用体验和工作效率。原创 2021-07-02 08:55:38 · 5169 阅读 · 1 评论 -
[Linux]脚本中输出漂亮的提示语 --- 图形字符命令banner
图形字符命令banner ---脚本中输出漂亮的提示语一、banner使用#生成banner%>banner hello#!/user/bin/perl -wsystem("banner HELLO");二、figlet使用一些普通字符生成banner三、toilet使用一些复杂的彩色特殊字符生成ba...原创 2021-03-30 19:57:18 · 1634 阅读 · 0 评论 -
TCSH入门教程 --- tcsh从入门到精通
TCSH Shell入门教程摘要 TCSH是一种编程风格更接近C语言的Unix shell,其控制结构和表达式语法与bash等shell有明显差异。本文介绍了TCSH的核心概念和常用功能: 变量与脚本 使用set、@、setenv定义变量 支持数值运算和数组操作 脚本需以"#"开头,通过$<读取输入 运算符 包含赋值(=,+=)、算术(+,-)、关系(>,==)等运算符 支持重定向(>,<)和管道(|) 控制结构 if/while使用(expression)测试条原创 2020-06-29 20:41:35 · 10095 阅读 · 3 评论 -
[Vmware][RHEL8]RedHat Enterprise 8.2网络配置
RedHat Enterprise 8.2网络配置一、RHEL网络配置方法 1.1、在rhel8上,有3种方法进行网络配置1. 手工配置ifcfg,通过NM来生效 2. 通过NM自带工具配ip,比如nmcli 3. 手工配置ifcfg,通过传统network.service来生效建议:推荐使用上述第1种网络配置方法(手工配置ifcfg,通过NM生效),因为这样既兼容了传统的ifcfg配置,又能熟悉nmcli。...原创 2020-06-27 19:46:38 · 1346 阅读 · 0 评论 -
Linux三剑客(grep、sed、awk)详解
Linux三剑客(grep、sed、awk)详解 前言:本文主要介绍一下Linux中最重要的三个命令,他们在业界被誉为“三剑客”,它们分别是:awk,sed,grep。它们三个侧能的功能不同,grep擅长查找功能,sed擅长取行和替换,awk擅长取列。下面分别介绍三者的主要option和应用实例。一、文本过滤工具grep(egrep)grep [OPTIONS] PATTERN [FILE...]1.1、主要Option-...原创 2020-06-27 18:51:34 · 2289 阅读 · 0 评论 -
Linux中将文本按行逆序输出的方法
linux中将文本按行逆序输出的方法一、使用awk命令看到好多博文里面的写法是有问题的,是一个死循环,第二字段中的while循环中的控制变量应该是“--i”,而不是大多博文中写的“-i”#!/bin/tcshawk ‘{lines[NR]=$0} END{i=NR; while(i>0){print lines[i];–-i} }’ file_name > new_filename二、使用VIM命令最简单...原创 2020-06-23 10:33:32 · 2060 阅读 · 0 评论 -
通俗易懂的Makefile教程(七)
通俗易懂的Makefile教程(七) 前言:本文主要介绍make 的运行。一般来说,最简单的就是直接在命令行下输入make命令,make命令会找当前目录的makefile来执行,一切都是自动的。但也有时你也许只想让make重编译某些文件,而不是整个工程,而又有的时候你有几套编译规则,你想在不同的时候使用不同的编译规则,等等。本章节就是讲述如何使用make命令的。一、make的退出码make命令执行后有三个退出码:......转载 2020-06-20 12:03:29 · 909 阅读 · 0 评论 -
通俗易懂的Makefile教程(六)
通俗易懂的Makefile教程(五)一、使用条件判断 使用条件判断,可以让make根据运行时的不同情况选择不同的执行分支。条件表达式可以是比较变量的值,或是比较变量和常量的值。1.1、示例 下面的例子,判断$(CC)变量是否“gcc”,如果是的话,则使用GNU函数编译目标。libs_for_gcc = -lgnunormal_libs =foo: $(objects)ifeq ($(CC),gcc......转载 2020-06-20 09:51:04 · 1056 阅读 · 0 评论 -
通俗易懂的Makefile教程(五)
通俗易懂的Makefile教程(五) 前言:本文将介绍在Makefile中使用变量的方法,在Makefile中的定义的变量,就像是C/C++语言中的宏一样,他代表了一个文本字串,在Makefile中执行的时候其会自动原模原样地展开在所使用的地方。其与C/C++所不同的是,你可以在Makefile中改变其值。在Makefile中,变量可以使用在“目标”,“依赖目标”,“命令”或是Makefile的其它部分中。 变量的命名......转载 2020-06-19 19:47:48 · 413 阅读 · 0 评论 -
通俗易懂的Makefile教程(四)
通俗易懂的Makefile教程(四) 前言:本节主要介绍书写命令,每条规则中的命令和操作系统Shell的命令行是一致的。make会一按顺序一条一条的执行命令,每条命令的开头必须以[Tab]键开头,除非,命令是紧跟在依赖规则后面的分号后的。在命令行之间中的空格或是空行会被忽略,但是如果该空格或空行是以Tab键开头的,那么make会认为其是一个空命令。我们在UNIX下可能会使用不同的Shell,但是make的命令默认是被“/bin/sh”......转载 2020-06-19 18:56:36 · 921 阅读 · 0 评论 -
通俗易懂的Makefile教程(三)
通俗易懂的Makefile教程(三)一、Makefile里有什么? Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。2、隐晦规则。由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地简略地书写Makefile,这是由make所支持的。......转载 2020-06-19 09:06:48 · 514 阅读 · 0 评论 -
通俗易懂的Makefile教程(二)
通俗易懂的Makefile教程(二)一、Makefile中使用变量 在上面的例子中,先让我们看看edit的规则:edit : main.o kbd.o command.o display.o /insert.o search.o files.o utils.occ -o edit main.o kbd.o command.o display.o /insert.o search.o files.o utils.o......转载 2020-06-18 19:55:01 · 563 阅读 · 0 评论 -
通俗易懂的Makefile教程(一)
通俗易懂的Makefile教程 最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比较好理解。能让人看懂就是好文章。 ......转载 2020-06-18 19:47:09 · 912 阅读 · 0 评论 -
[Linux]Linux打開world、Excel、pdf文檔,常用Linux命令總結
Linux打開world、Excel、pdf文檔 ---- 常用Linux命令總結一、在Linux中打開world文檔(需要安裝openoffice)1.1.打开或编辑.doc .odt等文本文档命令:openoffice.org -a 文件名.doc &1.2.打开演示文件命令:openoffice.org -g 文件名.... &am...原创 2020-05-21 19:43:48 · 7947 阅读 · 0 评论 -
[Linux]刪除指定日期之前的目錄或文件
前言:有時我們需要清除某個日期之前的文件,但是文件有非常之多,有好幾千個,這種情況下需要怎麼么做呢?可以用find來實現。 1、刪除4天之前的文件:find . -type f -name *.log -mtime +4 -exec rm {} \; 命令解釋: . :表示當前目錄 -f :表示目標...原创 2019-11-19 09:04:19 · 2400 阅读 · 0 评论 -
[Linux]Linux定時任務 crontab與DV Regression
前言:crontab是一个用来设置、删除或显示供守护进程cron执行的定时任务的命令。每一个用户都可以拥有属于自己的定时任务,定时任务文件默认以用户名命名,并放在/var/spool/cron目录,该目录普通用户无访问权限。 可以通过cron.allow 和 cron.deny文件管理用户使用cron服务的权限。如果cron.allow存在,用户必须列在其中才会被允许使用c...原创 2019-09-29 09:25:26 · 379 阅读 · 0 评论 -
[Linux]Shell命令之彈窗操作 - 在Linux下實現彈窗提醒
1、在遠程溝通過程中,由於權限管控,對方可能無法在自己的Terminal進行中操,比如開Verdi、寫文件等等,此時我們可以丟該對方一個Terminal,用如下指令:xterm -display sgrid12:0 & 其中sgrid12是對方的機器號。2、怎樣實現Linux下的彈窗操作呢?xmessage -center -disp sgrid12:0 " ...原创 2019-07-25 10:04:37 · 6612 阅读 · 1 评论 -
[Cshell]去除文件中的重複行
1. 在shell中可以利用uniq sort unsorted.txt | uniq > new_unsorted.txt注意:要先进行排序,才能调用uniq (uniq命令,只是把相邻的重复的数据行去掉)缺点:会打乱原有文件的内容2.利用Perl 实现2.1 去除文件重複的行unless (open FILE,"<D:/t...原创 2019-07-23 20:20:44 · 530 阅读 · 0 评论 -
[Cshell]配置你的.chsrc、prompt参数
本文介绍了CShell的提示符配置与参数化别名设置方法。主要内容包括:1.推荐使用彩色提示符设置方案,包含用户名、主机名、时间等信息,并详细说明颜色代码含义;2.列举预定义的prompt参数及其功能;3.讲解如何在.cshrc文件中创建带参数的别名,使用!:n语法引用位置参数;4.提供参数化别名示例和注意事项,建议复杂逻辑改用函数实现。最后强调修改配置后需执行source命令使更改生效。全文为CShell用户提供了实用的命令行定制指南。原创 2019-03-12 19:43:04 · 6910 阅读 · 1 评论 -
[Cshell]Cshell基本語法 --- 從入門到精通
本文介绍了CShell脚本编程的基础知识和实用技巧。主要内容包括:1)变量和数组的使用方法,包括局部变量、全局变量和数组操作;2)命令参数传递和命令行参数处理;3)文件操作和IO重定向;4)流程控制语句如if/else/while/foreach等;5)实用技巧如字符串处理、日期时间操作和环境变量设置;6)调试方法和错误处理机制。文章还提供了多个实际应用示例,如提取字符串中的数字、文件重定向等,帮助读者快速掌握CShell脚本编程的核心技能。原创 2019-03-09 11:21:25 · 35265 阅读 · 7 评论