shell-bash学习03 别名、日期、函数
别名
使用alias
- 创建
alias new_command='command sequence'
- 保存
echo 'alias cmd="command seq"' >> ~/.bashrc
- 删除
//~/.bashrc中删除
//使用 unalias cmd
//设置为空 alias cmd=
对别名进行转义
\command- 字符
\对命令实施转义,使可以执行原本的命令,而不是这些命令的别名替身; - 在不可信环境下执行特权命令,通过在命令前加上\来忽略可能存在的别名设置;
获取信息
获取终端信息
- 使用
tput
tput cols //行数
tput lines //列数
tput longname //打印出当前终端名
tput cup x y //将光标移动到坐标处
tput bold //设置文本样式为粗体
tput ed //删除从当前光标位置到行尾的所有内容
打印日期
Unix时间大小为世界标准时间(UTC) 1970年1月1日0时0分0秒起所流逝的秒数;- 读取
//日期格式
date
//秒数
date +%s
//转化
date --date "Thu Nov 18 08:07:21 IST 2010" +%s
| 日期内容 | 格式 |
|---|---|
| 星期 | %a(Sat)%A(Saturday) |
| 月 | %b(Nov)%B(November) |
| 日 | %d(31) |
| 固定格式日期(mm/dd/yy) | %D(10/18/10) |
| 年 | %y(10)%Y(2010) |
| 小时 | %I或%H(08) |
| 分钟 | %M(33) |
| 秒 | %S(10) |
| Unix纪元时(以秒为单位) | %s(1290049486) |
- 设置日期和时间
date -s "21 June 2009 11:01:22"
- 检测执行时间
#!/bin/bash
#文件名: time_take.sh
start=$(date +%s)
<commands>;
end=$(date +%s)
difference=$(( end - start))
echo Time taken to execute commands is $difference seconds.
//使用time
time <scriptpath>
- 计时器例子
#!/bin/bash
#文件名: sleep.sh
echo -n Count:
tput sc
count=0;
while true;
do
if [ $count -lt 40 ];
then
let count++;
sleep 1;
tput rc
tput ed
echo -n $count;
else exit 0;
fi
done
调试脚本
参数运行调试
bash -x script.sh;启用shell脚本的跟踪调试功能;
脚本运行调试
- 把
shebang改成#!/bin/bash -xv后运行; - 调试参数
| 参数 | 说明 |
|---|---|
| set –x | 在执行时显示参数和命令 |
| set +x | 禁止调试 |
| set -v | 当命令进行读取时显示输入 |
| set +v | 禁止打印输入 |
#!/bin/bash
#文件名: debug.sh
for i in {1..6};
do
set -x
echo $i
set +x
done
echo "Script executed"
设置环境变量调试
#!/bin/bash
# script.sh
function DEBUG()
{
[ "$_DEBUG" == "on" ] && $@ || :
}
for i in {1..10}
do
DEBUG echo $i
done
// _DEBUG=on ./script.sh
函数
定义
function fname()
{
statements;
}
//
fname()
{
statements;
}
执行
fname ; #执行函数
//
fname arg1 arg2 ; #传递参数
函数参数
fname()
{
echo $1, $2; #访问参数1和参数2
echo "$@";#以列表的方式一次性打印所有参数
echo "$*"; #类似于$@,但是参数被作为单个实体
return 0; #返回值
}
递归函数
- 可以调用自身
导出函数
- 函数的作用域就可以扩展到子进程中:
export -f fname
shell-bash学习03 别名、日期、函数的更多相关文章
- Shell脚本学习 - 流程控制和函数
继续Shell的学习.上两篇是关于基本数据类型,基本语法以及运算符相关,这一篇是流程控制相关(if, for, while) 流程控制 if else 流程控制不可为空,如果else没有语句执行,就不 ...
- shell学习总结之自定义函数
shell学习总结之自定义函数 Myfun (){ echo -n "now i is $i " ! [ "$i" ] && exit ; ec ...
- 【转】一大波实用的 bash 别名和函数
作为一个命令行探索者,你或许发现你自己一遍又一遍重复同样的命令.如果你总是用ssh进入到同一台电脑,如果你总是将一连串命令连接起来,如果你总是用同样的参数运行一个程序,你也许希望在这种不断的重复中为你 ...
- 实用的bash别名和函数
本文来自于:程序师 作为一个命令行探索者,你或许发现你自己一遍又一遍重复同样的命令.如果你总是用ssh进入到同一台电脑,如果你总是将一连串命令连接起来,如果你总是用同样的参数运行一个程序,你也许希望在 ...
- 03 shell编程之case语句与函数
本文所有内容均来自当年博主当年学习笔记,若有不足欢迎指正 Shell编程之case语句与函数 学习目标: 掌握case语句编程 掌握shell函数的使用 目录结构: Case语句 Case语句的作用 ...
- Bash脚本编程学习笔记08:函数
官方资料:Shell Functions (Bash Reference Manual) 简介 正如我们在<Bash脚本编程学习笔记06:条件结构体>中最后所说的,我们应该把一些可能反复执 ...
- JavaScript学习03 JS函数
JavaScript学习03 JS函数 函数就是包裹在花括号中的代码块,前面使用了关键词function: function functionName() { 这里是要执行的代码 } 函数参数 函数的 ...
- Linux之bash shell的学习
1.什么是bash shell bash 是Bourne Again Shell的简称,是从unix系统中的sh发展而来,是用户和偶Linux内核交互的工具,用户通过bash操作内核完成系统的使用和 ...
- Oracle的学习三:java连接Oracle、事务、内置函数、日期函数、转换函数、系统函数
1.java程序操作Oracle java连接Oracle JDBC_ODBC桥连接 1.加载驱动: Class.forName("sun.jdbc.odbc.JdbcodbcDriver& ...
随机推荐
- 【leetcode】 search Insert Position(middle)
Given a sorted array and a target value, return the index if the target is found. If not, return the ...
- java实现批量上传(swfupload)
下载 swfupload 文件夹 里面包含handlers.js,swfupload.js,swfupload.swf 三个文件. 我的是和ssh项目整合在一起的.因为struts2的拦截器会拦截所有 ...
- Java容器题库
一. 填空题 Java集合框架提供了一套性能优良.使用方便的接口和类,包括Collection和Map两大类,它们都位于 java.util 包中 队列和堆栈有些相似,不同之处在于栈是先进后 ...
- Android笔记:四大组件
1.Activity(是用户可以看到的主要的界面,使用时需要在AndroidManifest.xml中编辑声明.) 启动模式: 启动模式一共有四种,分别是standard.singleTop.sing ...
- 解决客户端访问https报错
现象: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure at com.sun.net.ssl. ...
- SOCKet 编程 简介
“一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket. ——有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览 ...
- 根据复选框checkbox的选中状态来打开或关闭隐藏层
HTML: <input type="checkbox" id="check-expert"> <div id="expert&q ...
- 20145206邹京儒《Java程序设计》第3周学习总结
20145206 <Java程序设计>第3周学习总结 教材学习内容总结 第四章 4.1 定义类 class Clothes{ String color; char size; } publ ...
- Ubuntu中给eclipse和android studio添加桌面快捷图标
Ubuntu 12.04 创建应用程序启动项(可在Unity LaucherPad显示) http://www.cnblogs.com/bluestorm/archive/2012/10/12/272 ...
- 跳出IFrame几种方式
1. <script type="text/javascript"> if (top.location !== self.location) { top.locatio ...