linux下使用shell脚本获取终端宽度
获取终端大小时候的学习
学习日期:2018/11/3
问题来源:
在写shell脚本时想输出一行占满整个终端屏幕宽度的 横杠
发现for循环会导致执行缓慢
解决方法:
使用yes 命令
sed '50q' 显示50行
tr -d '\n' 删除 \n
多次重复输入相同字符可用yes
yes "2" | sed '50q' | tr -d '\n'
想法来自:打印100个连续的符号,不用循环
stty size (获取终端大小)
stty size|awk '{print $2}'
最终命令:
(指令版)
shellwidth=`stty size|awk '{print $2}'`
# 输出横杠
yes "-" | sed $shellwidth'q' | tr -d '\n'
----------------------------------------------------
(function版)
function getshellwidth() # 这里可以去掉function
{
echo `stty size|awk '{print $2}'`
#return 0 # return是返回 成功或者失败的
#调用的时候只需要上面的输出就行, 他会将标准输出return回来
}
# 这块有个疑问 就是如下面的写法会报错 Inappropriate ioctl for device
# yes "-" | sed `getshellwidth`'q' | tr -d '\n'
----------------------------------------------------
# 输出横杠
shellwidth=`getshellwidth`
yes "-" | sed $shellwidth'q' | tr -d '\n'
(直接显示一行横杠)# 推荐使用本方法
printLine()
{
# 进行判断
if [ ! $1 ]; then
# 没有参数则直接输出 -
outword='-'
else
# 将输入的参数1 赋值给outword
outword=$1
fi
shellwidth=`stty size|awk '{print $2}'`
yes $outword | sed $shellwidth'q' | tr -d '\n'
}
printLine # 直接调用 后面可以跟参数
备注: 获取宽度后最好是将宽度定义为一个新的变量,或者是function 这样获取比较方便
优雅的判断
${COLUMN:-}
例如: ${COLUMN:-1}
如果COLUMN是空变量,或者变量不存在,返回-后面的内容,如果变量有值返回这个值。
备注:
$COLUMNS 在linux 也可以显示行宽,但是放在bash 脚本中 则需要使用 source shell.sh 的格式去编写
因为source 可以直接利用当前环境变量 而bash则是另起一个环境,无法输出(猜想)
linux下使用shell脚本获取终端宽度的更多相关文章
- Linux下添加shell脚本使得nginx日志每天定时切割压缩
Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常 ...
- Linux下使Shell 命令脱离终端在后台运行
--Linux下使Shell 命令脱离终端在后台运行------------------------------------2014/02/14你是否遇到过这样的情况:从终端软件登录远程的Linux主 ...
- linux下实现shell脚本自动连接mongodb数据库并创建索引
在linux下创建shell脚本
- 2019.11.13课堂实验之用Linux下的shell脚本完成两文本交替输出
有两个文本如下,实际中并不知道两文本各有多少行: 文本1.txt aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ccccccccccccccccccccccccccc ...
- linux下的shell脚本(基本)
shell有些命令和格式不用老是容易忘,学而时习之,不亦说乎~ 先说明以下内容来自: http://c.biancheng.net/cpp/shell/ ,C语言中文网,请大家支持原作,点击链接查看. ...
- linux下的shell脚本
先说明以下内容来自: http://c.biancheng.net/cpp/shell/ ,C语言中文网,请大家支持原作,点击链接查看. 我写下来只是作为笔记,如果侵权,请留言,立马删除. Shell ...
- windows下建立文件的换行符^M导致linux下的shell脚本执行错误的解决方式
常常在windows下编辑的文件远程传送到linux下的时候每行末尾都会出现^M.这将导致shell脚本执行错误,主要是由于dos下的编辑器和linux下的编辑器对文件末行的回车符处理不一致导致. 主 ...
- Linux 下执行Shell 脚本的方式
Shell 脚本的执行方式通常有如下三种: (1)bash script-name 或者 sh script-name:(2)path/script-name或者./script-name:(3)so ...
- linux下的shell脚本的使用
什么是shell? Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户进行对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕反馈给用户.这种对话方式可是交互 ...
随机推荐
- 【Python】Java程序员学习Python(十一)— IO
一.前言 io的内容其实还是有很多的,现在我也只是了解初步用法,当然详细内容还是应该参照官方api的: 官方api:https://docs.python.org/3/library/os.html. ...
- Centos 安装Dokuwiki
一.前言 DokuWiki是一个开源wiki引擎程序,运行于PHP环境下.DokuWiki程序小巧而功能强大.灵活,适合中小团队和个人网站知识库的管理. 二.环境 在centos6 下安装apache ...
- zTree自定义节点name显示样式
//setting中配置属性 view: { showLine:false, dblClickExpand: true, showIcon: false, addDiyDom: addDiyDom / ...
- oracle中存储过程把表导出txt文件
create or replace directory MY_DIR as 'D:\MY_DIR\'; grant read,write on directory MY_DIR to adm; sel ...
- php算法基础----时间复杂度和空间复杂度
算法复杂度分为时间复杂度和空间复杂度. 其作用: 时间复杂度是指执行算法所需要的计算工作量: 而空间复杂度是指执行这个算法所需要的内存空间. (算法的复杂性体现在运行该算法时的计算机所需资源的多少上, ...
- Notepad++调用python
***首先确保在cmd下能直接运行python*** (博主的环境:win10 下2和3共存) 接下来进入主题,用Notepad++打开py文件,然后按 F5 键弹出运行窗口,输入以下内容: pyth ...
- Spring 源码阅读之BeanFactory
1. BeanFactory 的结构体系如下: 2. XmlBeanFactory ,装载Spring配置信息 package org.springframework.beans.factory.xm ...
- Jmeter入门3 http请求—content-type与参数
本文讲三种content-type以及在Jmeter中对应的参数输入方式 第一部分:目前工作中涉及到的content-type 有三种: content-type:在Request Headers里, ...
- 通过 Chrome 调试运行在 IOS-safari 上的页面
本文重点讨论如何在 Windows 系统中通过chrome 浏览器调试运行在 iPhone Safari 浏览器中的网页.如果你有一台 iMac/MacBook,可忽略该文档.iMac 环境下,直接通 ...
- golang-gorm框架支持mysql json类型
gorm框架目前不支持Json类型的数据结构 http://gorm.book.jasperxu.com/callbacks.html 如在Mysql中定义了如下的表结构 CREATE TABLE ` ...