Shell
ilmlife
这个作者很懒,什么都没留下…
展开
-
$@与${1+$@}的区别
最近发现网上有不少人问${1+"$@"}是什么意思,希望这篇文章能很彻底的回答这个问题。 首先,我想绝大多数人明白“参数展开”的概念。比如${variable},在脚本执行的时候,会自动替换成变量的值。例如下面的例子,会将"Hello world!"输出,而不是"$message"。 $message="Hello world!" echo $message 这里用转载 2017-03-10 18:17:42 · 2866 阅读 · 0 评论 -
shell数组赋值失败问题
编写了一个shell脚本,发现数组赋值失败,原代码: monthDate=$1 logBaseHome=/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 · 1795 阅读 · 0 评论 -
Shell中$# $@等含义
$# 是传给脚本的参数个数 $0 是脚本本身的名字 $1 是传递给该shell脚本的第一个参数 $2 是传递给该shell脚本的第二个参数 $@ 是传给脚本的所有参数的列表 $* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个 $$ 是脚本运行的当前进程ID号 $? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误原创 2017-03-10 18:25:09 · 1628 阅读 · 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 · 844 阅读 · 0 评论 -
shell删除N天以前的日志文件
N=7 find . -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 · 3219 阅读 · 0 评论 -
shell基础
基础格式 第一行#!/bin/sh(#!+选用的解释器路径) 命令处理 基础命令 简单输出echo(默认以换行结尾) printf输出(和echo不同的是默认没有换行) IO重定向(标准输入、标准输出、标准错误输出) 重定向与管道: > 标准输出 >> 附加到文件 | 建立管道原创 2017-10-25 21:44:19 · 291 阅读 · 0 评论