问题1:grouping
![](https://i-blog.csdnimg.cn/blog_migrate/feaa963ea0875e54e7cffbd891ae3342.png)
注意区分两种grouping的区别;
问题2:weak grouping
![](https://i-blog.csdnimg.cn/blog_migrate/5b9d07db4746ff8b850d441d508c0517.png)
注意command替换时的值是返回值!!
问题3:redirect
![](https://i-blog.csdnimg.cn/blog_migrate/9bbef5f9e768fe55db5e3c4f77011be8.png)
redirect:把值重新输出到一个文件或者变量里面;
![](https://i-blog.csdnimg.cn/blog_migrate/c0c6f48eed64b610a35db1025e25d8aa.png)
重要:要学会看man command;以man redirect为例,首先name是对redirect的简单介绍,下面的Syntax是基本的使用结构,其中用[]阔着的是可选加上的结构,用{}阔着的是必须要加的结构;后面还会有说明和一些案例;
我们来分析一下这个Syntax:
首先,第一行是说前面是redirect的字符串开头;
第二行是一些可选的命令,其中”|“表示或的意思,就是这几个变量只能选一个接上;
第三行是target目标,可以是变量,也可以是文件;
第四行是加的必须要加的执行操作;
问题4:echo & 问题5:grep
![](https://i-blog.csdnimg.cn/blog_migrate/90ac693481065f08a3ef576bf2d7bf57.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f6b0313e5b22dfd049e4ff2e0b971259.png)
问题四:”\ “等于space;
问题五:直接man是一种不错的办法,但会存在例外情况,就是有些新的command还没来得及写manual,这样也会显示没有;所以可以先打出”gr”,然后按下tab键,这样他会把所有的gr开头的command都列出来;或者用help grep也可以;
help和man的区别:
help command会把相关的command全都打印到屏幕上来(例:help gr*:把所有gr开头的command都打印出来),而man 则相当于把该command的manual打印出来;
问题7:string相关
![](https://i-blog.csdnimg.cn/blog_migrate/13a767f47362245df75058b28fb37b34.png)
想要找到某个command的相关命令,直接man string > manpage_manual,在直接用gvim打开;
问题8:format
![](https://i-blog.csdnimg.cn/blog_migrate/686d29e4acc04f1291dfcded53103a66.png)
man一下;
问题6:写一个四层嵌套command
![](https://i-blog.csdnimg.cn/blog_migrate/ccbb9b5c7b8f272a2fab5d9585600641.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3b9a9c01c35a613ce6d217d8e22fb029.png)
简述:
①expr:数学运算command,后面带grouping时,一定要带{}的,不能用”“ grouping;
②这个命令可以简单写为set_max_capacitance arg1 arg2的形式,后面两个arg很长,都用command替换实现;arg1当中为expr数学运算,load_of为加载命令,ssc_core_slow为Lib名称;and2a1为lib中的某个cell名称;A为pin name;类似于文件夹的形式,中间用反斜杠隔开;
③remove_from_collection为移除带有某些collection标签的文件,含义就是在all_inputs中去除掉ports clk的pin;
④该命令其实也只有两层,没有四层;