
Shell
ilmlife
这个作者很懒,什么都没留下…
展开
-
$@与${1+$@}的区别
最近发现网上有不少人问${1+"$@"}是什么意思,希望这篇文章能很彻底的回答这个问题。首先,我想绝大多数人明白“参数展开”的概念。比如${variable},在脚本执行的时候,会自动替换成变量的值。例如下面的例子,会将"Hello world!"输出,而不是"$message"。$message="Hello world!"echo $message这里用转载 2017-03-10 18:17:42 · 2961 阅读 · 0 评论 -
shell数组赋值失败问题
编写了一个shell脚本,发现数组赋值失败,原代码:monthDate=$1logBaseHome=/data/mqq_data/log_center/rootHome=/data/mqq_data/log_center/silly/tools/dolphinInfo/result=(0 0 0 0 0 0 0 0)fileName=$rootHome/$monthDate"."m原创 2017-03-10 18:23:27 · 1940 阅读 · 0 评论 -
Shell中$# $@等含义
$# 是传给脚本的参数个数$0 是脚本本身的名字$1 是传递给该shell脚本的第一个参数$2 是传递给该shell脚本的第二个参数$@ 是传给脚本的所有参数的列表$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个$$ 是脚本运行的当前进程ID号$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误原创 2017-03-10 18:25:09 · 1678 阅读 · 0 评论 -
comm 比较两个文件中相同不同行
comm -12 file1 file2 就只显示在两个文件中都存在的行comm -23 file1 file2 只显示在第一个文件中出现而未在第二个文件中出现的行comm -13 file1 file2 只显示在第一个文件中未出现而出现在第二个文件中的行其中参数意义: -1 不显示只在第1个文件里出现过的列。(suppress lines unique to FILE1)原创 2017-03-10 18:27:24 · 912 阅读 · 0 评论 -
shell删除N天以前的日志文件
N=7find . -type f -mtime +7 | grep -E "\.log\.20[0-9]{2}-[0-1][0-9]-[0-3][0-9].gz$" |xargs rm -f+N表示N天以前-N表示N天以内atime是指access time,即文件被读取或者执行的时间ctime即change time文件状态改变时间,指文件的原创 2017-03-10 18:29:11 · 3274 阅读 · 0 评论 -
shell基础
基础格式第一行#!/bin/sh(#!+选用的解释器路径)命令处理基础命令简单输出echo(默认以换行结尾)printf输出(和echo不同的是默认没有换行)IO重定向(标准输入、标准输出、标准错误输出)重定向与管道:> 标准输出>> 附加到文件| 建立管道原创 2017-10-25 21:44:19 · 335 阅读 · 0 评论