shell
Léon's Blog
一只野生程序猿
展开
-
[shell]获取当前脚本的绝对路径
如题,一般我们写Shell脚本的时候,都倾向使用绝对路径,这样无论脚本在什么目录执行,都应该起到相同的效果,但是有些时候,我们设计一个软件包中的工具脚本,可能使用相对路径更加灵活一点,因为你不知道用户会在哪个目录执行你的程序,就有了本文的题目。 常见的一种误区,是使用 pwd 命令,该命令的作用是“print name of current/working directory”,这才是此命令转载 2017-08-17 22:45:44 · 1931 阅读 · 0 评论 -
父 shell,子 shell ,export 与 变量传递
当我们在一个 shell 里运行一个脚本程序时,该 shell 就会 fork 出一个新进程,从而启动了另一个命令解释器(由脚本中第一行的 #!/bin/xxx 指定,如 bash shell)来解释运行我们这个脚本。也就是说,这个新进程是一个子 shell,而之前的 shell 是个父 shell 。在我们所运行的脚本里,我们还可以启动新的子 shell 进程,这些子 shell 进程...转载 2018-11-06 17:20:35 · 4004 阅读 · 0 评论 -
[shell]算术运算
在Linux下做算术运算时你是如何进行的呢?是不是还在用expr呢?你会说我还会bc还有其它的呢!闲话不多扯,干正事!1exprexpr在使用中要注意一些书写,如表达式中量和运算符号之间的空格及一些运算符号需要转义,还有一点需要记住,expr只适用于整数之间的运算!1.1表达式expr的help文档中关于表达式部分如下: ARG1转载 2017-11-02 02:51:23 · 704 阅读 · 0 评论 -
[shell]sort
本原创文章属于《Linux大棚》博客,博客地址为http://roclinux.cn。文章作者为rocrocket。为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅。===[正文开始]有时候学习脚本,你会发现sort命令后面跟了一堆类似-k1,2,或者-k1.2 -k3.4的东东,有些匪夷所思。今天,我们就来搞定它—-k选项!1 准备素材转载 2017-11-02 02:17:46 · 246 阅读 · 0 评论 -
[shell]while read line do done < file
循环中的重定向或许你应该在其他脚本中见过下面的这种写法:while read linedo …done 刚开始看到这种结构时,很难理解对循环重定向的输入可适用于循环中的所有需要从标准输入读取数据的命令;对循环重定向的输出可适用于循环中的所有需要向标准输出写入数据的命令;当在循环内部显式地使用输入或输出重定向,内部重转载 2017-11-01 15:49:58 · 14298 阅读 · 0 评论 -
[shell] eval
1. eval command-line其中command-line是在终端上键入的一条普通命令行。然而当在它前面放上eval时,其结果是shell在执行命令行之前扫描它两次。如:pipe="|"eval ls $pipe wc -lshell第1次扫描命令行时,它替换出pipe的值|,接着eval使它再次扫描命令行,这时shell把|作为管道符号了。如果变转载 2017-09-07 15:23:35 · 554 阅读 · 0 评论 -
[shell]字符串处理
cut echo "x:xx:xxx" | cut -d ":" -f 2uniqcat file0 | sort | uniqawkecho "x:xx:xxx" | awk -F ":" '{for(i=1;i原创 2017-10-15 21:53:13 · 382 阅读 · 0 评论 -
[shell]while read line 与 for循环的区别
while read line 与for循环的区别 ---转载整理while read line 是一次性将文件信息读入并赋值给变量line ,while中使用重定向机制,文件中的所有信息都被读入并重定向给了整个while 语句中的line 变量。for是每次读取文件中一个以空格为分割符的字符串。如下示例脚本:#/bin/bash转载 2017-10-15 22:08:32 · 10479 阅读 · 1 评论 -
[shell]自动交互
教会你Linux Shell自动交互的三种方法你了解Linux系统么?你是Linux系统的应用者么?如果你要学习linux,你可能会遇到Linux Shell自动交互问题,这里将介绍Linux Shell自动交互的解决方法,在这里拿出来和大家分享一下。你了解Linux系统么?你是Linux系统的应用者么?如果你要学习linux,你可能会遇到Linux Shell自动交互转载 2017-11-09 20:45:14 · 519 阅读 · 0 评论 -
[shell]输出内容到剪切板
commandline和GUI下的clipboard的交互Mac下echo $PATH | pbcopy,copy to clipboardecho "$(pbpaste -Prefer text)",copy from clipboardLinux下,首先需要安装xselecho $PATH | xsel --clipboard,copy to clipboardec转载 2017-10-09 00:50:52 · 7786 阅读 · 0 评论 -
[shell]快速入门
什么是Shell脚本示例看个例子吧:#!/bin/shcd ~mkdir shell_tutcd shell_tutfor ((i=0; i10; i++)); do touch test_$i.txtdone示例解释第1行:指定脚本解释器,这里是用/bin/sh做解释器的第2行:切换到当前用户的home目录第3行:创建一个目录shell转载 2017-09-29 16:29:46 · 241 阅读 · 0 评论 -
[shell] 特殊符号
变量含义$0当前脚本的文件名$n传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。$#传递给脚本或函数的参数个数。$*传递给脚本或函数的所有参数。$@传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。$?上个命转载 2017-09-07 16:34:03 · 263 阅读 · 0 评论 -
[shell] 小括号、中括号、大括号
一、小括号,圆括号() 1、单小括号 () ①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。 ②命令替换。等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,转载 2017-09-07 15:41:59 · 740 阅读 · 0 评论 -
[shell] tr用法
tr(translate缩写)主要用于删除文件中的控制字符,或进行字符转换。语法:tr [–c/d/s/t] [SET1] [SET2]SET1: 字符集1SET2:字符集2-c:complement,用SET2替换SET1中没有包含的字符-d:delete,删除SET1中所有的字符,不转换-s: squeeze-repeats,压缩SET1中重复的字符-t: trun转载 2017-09-07 15:20:30 · 277 阅读 · 0 评论 -
[shell]获取系统时间
在shell脚本里常常需要获取系统时间来处理某项操作,今天系统的学习了一下如何获取系统时间。记录如下:Linux的系统时间在shell里是可以直接调用系统变量的如: 获取今天时期:`date +%Y%m%d` 或 `date +%F` 或 $(date +%y%m%d)命令输出结果如下:[root@centi-C sh]# date +%Y%m%d 20120727 [ro转载 2017-08-17 23:38:16 · 411 阅读 · 0 评论 -
[shell]截取字符串
shell中截取字符串的方法有很多中,${expression}一共有9种使用方法。${parameter:-word}${parameter:=word}${parameter:?word}${parameter:+word} 上面4种可以用来进行缺省值的替换。${#parameter}上面这种可以获得字符串的长度。 ${parameter%word} 最转载 2017-08-17 22:47:34 · 452 阅读 · 0 评论 -
[shell]定义变量
Shell支持自定义变量。定义变量定义变量时,变量名不加美元符号($),如:variableName="value"注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:首个字符必须为字母(a-z,A-Z)。中间不能有空格,可以使用下划线(_)。不能使用标点符号。不能使用bash里的关键字(可用help转载 2017-08-17 22:46:35 · 302 阅读 · 0 评论 -
【shell】通过alias实现回调
function _echo_1(){ echo 1}function _print(){ echo 0}function do_process(){ eval "_print"}alias _print="_echo_1"_printdo_process运行结果;function _echo_1(){ echo 1}...原创 2019-03-06 16:10:02 · 609 阅读 · 0 评论