别名

使用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 别名、日期、函数的更多相关文章

  1. Shell脚本学习 - 流程控制和函数

    继续Shell的学习.上两篇是关于基本数据类型,基本语法以及运算符相关,这一篇是流程控制相关(if, for, while) 流程控制 if else 流程控制不可为空,如果else没有语句执行,就不 ...

  2. shell学习总结之自定义函数

    shell学习总结之自定义函数 Myfun (){ echo -n "now i is $i " ! [ "$i" ] && exit ; ec ...

  3. 【转】一大波实用的 bash 别名和函数

    作为一个命令行探索者,你或许发现你自己一遍又一遍重复同样的命令.如果你总是用ssh进入到同一台电脑,如果你总是将一连串命令连接起来,如果你总是用同样的参数运行一个程序,你也许希望在这种不断的重复中为你 ...

  4. 实用的bash别名和函数

    本文来自于:程序师 作为一个命令行探索者,你或许发现你自己一遍又一遍重复同样的命令.如果你总是用ssh进入到同一台电脑,如果你总是将一连串命令连接起来,如果你总是用同样的参数运行一个程序,你也许希望在 ...

  5. 03 shell编程之case语句与函数

    本文所有内容均来自当年博主当年学习笔记,若有不足欢迎指正 Shell编程之case语句与函数 学习目标: 掌握case语句编程 掌握shell函数的使用 目录结构: Case语句 Case语句的作用 ...

  6. Bash脚本编程学习笔记08:函数

    官方资料:Shell Functions (Bash Reference Manual) 简介 正如我们在<Bash脚本编程学习笔记06:条件结构体>中最后所说的,我们应该把一些可能反复执 ...

  7. JavaScript学习03 JS函数

    JavaScript学习03 JS函数 函数就是包裹在花括号中的代码块,前面使用了关键词function: function functionName() { 这里是要执行的代码 } 函数参数 函数的 ...

  8. Linux之bash shell的学习

    1.什么是bash  shell bash 是Bourne Again Shell的简称,是从unix系统中的sh发展而来,是用户和偶Linux内核交互的工具,用户通过bash操作内核完成系统的使用和 ...

  9. Oracle的学习三:java连接Oracle、事务、内置函数、日期函数、转换函数、系统函数

    1.java程序操作Oracle java连接Oracle JDBC_ODBC桥连接 1.加载驱动: Class.forName("sun.jdbc.odbc.JdbcodbcDriver& ...

随机推荐

  1. AIX系统中安装Java6全过程(全部)

    ====================================================   From: GCG TSC pSeries <ibm800p@cn.ibm.com& ...

  2. 【leetcode】Restore IP Addresses (middle)

    Given a string containing only digits, restore it by returning all possible valid IP address combina ...

  3. java获得本机IP,名称等

    import java.net.InetAddress; import java.net.UnknownHostException; public class GetLocalIP { public ...

  4. 决绝Capturing 'demo' strongly in this block is likely to lead to a retain cycle

    - (IBAction)onTest:(id)sender { BlockDemo *demo = [[BlockDemo alloc]init];  __weak typeof(BlockDemo) ...

  5. CityEngine基于规则贴图的实现技巧

    转自:http://blog.sina.com.cn/s/blog_841eeb5201010p3e.html CityEngine在贴图的实现过程有两种方式:第一种是通过i(geometryPath ...

  6. 狼抓兔子(bzoj 1010)

    Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一 ...

  7. 网页(HTML)中的特殊字符

    网页(HTML)中的特殊字符 (1)一般来说,在HTML中,一个特殊字符有两种表达方式,一种称作数字参考,一种称作实体参考. 所谓数字参考,就是用数字来表示文档中的特殊字符,通常由前缀“&#” ...

  8. IOS8下,百度地图无法定位解决办法

      通过在论坛中搜索,找到解决办法,我只是论坛的搬运工.分享如下:   1.在info.plist中加入: NSLocationAlwaysUsageDescription=YES NSLocatio ...

  9. AngularJS 简介、指令、表达式

    AngularJS 是一个 JavaScript 框架.它可通过 <script> 标签添加到 HTML 页面. AngularJS 通过指令扩展了 HTML,且通过表达式绑定数据到 HT ...

  10. ListView介绍

    原文:http://blog.csdn.net/qingye_love/article/details/13772391?utm_source=tuicool&utm_medium=refer ...