这篇文章给大家介绍怎么在Linux中使用Shell脚本获取终端宽度,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强>获取终端大小时候的学习强>
在写Shell脚本时想输出一行占满整个终端屏幕宽度的横杠
发现为循环会导致执行缓慢
<强>解决方法:强>
使用是的命令
sed & # 39; 50提问# 39;显示50行
tr - d & # 39; \ n # 39;删除\ n
<强>多次重复输入相同字符可用是的强>
<代码>是的“2”;| sed & # 39; 50提问# 39;| tr - d & # 39; \ n # 39; 代码>
想法来自:打印100个连续的符号,不用循环
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<强> stty大小(获取终端大小)强>
<代码> stty大小| awk & # 39; {print $ 2} & # 39; 代码>
最终命令:
(指令版) shellwidth=' stty 大小| awk & # 39; {print $ 2} & # 39;” #,输出横杠 yes “产生绯闻,|,sed 美元shellwidth& # 39;提问# 39;,|,tr -d & # 39; \ n # 39; ---------------------------------------------------- (函数版) function getshellwidth(), #,这里可以去掉函数 { echo 才能,“stty 大小| awk & # 39; {print $ 2} & # 39;” #才能return 0, #,回报是返回,成功或者失败的 #调才能用的时候只需要上面的输出就行,,他会将标准输出返回回来 } #,这块有个疑问,就是如下面的写法会报错,Inappropriate ioctl for 设备 #,yes “产生绯闻,|,sed ‘getshellwidth & # 39;提问# 39;,|,tr -d & # 39; \ n # 39; ---------------------------------------------------- #,输出横杠 shellwidth=' getshellwidth ', yes “产生绯闻,|,sed 美元shellwidth& # 39;提问# 39;,|,tr -d & # 39; \ n # 39; (直接显示一行横杠)#,推荐使用本方法 printLine (),,, { #,才能进行判断 if 才能;[!大敌;1美元,];然后 ,,,#,没有参数则直接输出,- ,,,outword=& # 39; & # 39; 其他的才能 ,,,#,将输入的参数1,赋值给outword ,,,outword=1美元 fi 才能; shellwidth才能=' stty 大小| awk & # 39; {print $ 2} & # 39;” yes 才能;outword 美元;|,sed 美元shellwidth& # 39;提问# 39;,|,tr -d & # 39; \ n # 39; } printLine ,,, #,直接调用,后面可以跟参数
备注:获取宽度后最好是将宽度定义为一个新的变量,或者是函数这样获取比较方便
优雅的判断
<代码> ${列:},
代码>
例如:,,,<代码> ${列:1},代码>
如果列是空变量,或者变量不存在,返回——后面的内容,如果变量有值返回这个值。
<强>备注:强>
美元列在linux也可以显示行宽,但是放在bash脚本中则需要使用壳来源。sh的格式去编写
,因为源可以直接利用当前环境变量而bash则是另起一个环境,无法输出(猜想)
关于怎么在Linux中使用Shell脚本获取终端宽度就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。