shell
lslxdx
个人主页: http://www.lslxdx.com
Github: https://github.com/lslxdx
展开
-
Shell中, eval的用法
简介eval是Shell内置的命令。基本用法如下:eval [arguments]主要功能是读入arguments并执行之。arguments的退出码(Exit Code)会被当做eval的退出码。如果没有arguments,则退出码是0。在平时的使用中,我们一般会用到eval的2个特性。两次扫描参数cat >parse_twice.sh<<EOF""#!/bin/bashx=100y=xe原创 2017-03-17 16:35:23 · 10343 阅读 · 0 评论 -
[exec][source][fork]区别
exec fork source shell bash 区别原创 2017-03-06 17:40:41 · 764 阅读 · 0 评论 -
Shell中,实现单一实例(译)
代码#!/bin/bash## Copyright (C) 2009 Przemyslaw Pawelczyk <przemoc@gmail.com>#### This script is licensed under the terms of the MIT license.## https://opensource.org/licenses/MIT## Lockable script翻译 2017-03-20 16:05:20 · 826 阅读 · 0 评论 -
Shell中, 快速创建清空文件内容
常规做法echo -n > /path/to/file 注意使用-n参数,这样可以去掉末尾的换行符。更简洁的做法:>/path/to/file:(冒号)是Bourne Shell内置命令,完整用法是下面这样子的:: [arguments]它除了展开arguments和重定向(redirection)以外,不做任何事情。另外,它返回的状态码是0,所以可以用来实现死循环:while :do原创 2017-03-16 14:15:01 · 1606 阅读 · 0 评论 -
Shell中, 为标准错误输出添加时间戳
示例#! /bin/bashexec 2> >(while read line; do echo "[$(date "+%Y-%m-%d %H:%M:%S")] $line"; done)ls /not/exist/path运行chmod u+x stderr_ts.sh./stderr_ts.sh输出[2017-03-15 18:33:33] ls: /not/exist/path: No原创 2017-03-16 14:15:29 · 3963 阅读 · 1 评论 -
Shell中, 退出整个脚本
常规做法cat >test.sh<<EOF''#!/bin/bashexit_script(){ exit 1}echo "before exit"exit_scriptecho "after exit"EOFchmod a+x test.sh./test.shecho $?# 输出before exit1可以看到直接使用exit可以退出脚本,并且可以将错误码作为参数传递。原创 2017-03-16 16:03:26 · 19999 阅读 · 0 评论 -
Shell中的算术运算(译)
算术运算尽管Shell中的变量被缺省地看做是string类型,而非number,但是Shell本身仍然支持算术运算。 主要有以下5种方式。1. declare$ n=6/3$ echo $n6/3$ declare -i n #将n声明为一个整数(integer)$ n=6/3$ echo $n22. expr$ z=5$ z=`expr $z+1` # 加号(+)两边要有空格翻译 2017-03-16 22:38:05 · 1208 阅读 · 0 评论 -
Shell中, 内嵌文档和内嵌字符串的使用
内嵌文档(Here Documents)内嵌文档(Here Documents)的完整用法如下:[n]<<[-]word here-documentdelimiter常规用法cat <<EOFa text linea command substitution: `pwd`a parameter expansion: $$EOF# 输出a text linea comma原创 2017-03-16 14:14:26 · 1159 阅读 · 0 评论