Shell下变量比较

两个参数对比

[[email protected] shell]# vi test.sh [[email protected] shell]# cat test.sh #!/bin/bashif [ $1 -ge $2 ]; then echo -e "\033[41;37m <参数不对,第一个数字要小于第二个,退出此次操作!> \033[0m" else echo "起止时间依次是:`date -d "$2 days ago" +%Y%m%d`--`date -d "$1 days ago" +%Y%m%d`";fi[[email protected] shell]# ./test.sh 1 2起止时间依次是:20141116--20141117[[email protected] shell]# ./test.sh 2 1 <参数不对,第一个数字要小于第二个,退出此次操作!> [[email protected] shell]# ./test.sh 2 8起止时间依次是:20141110--20141116[[email protected] shell]# ./test.sh 1 90起止时间依次是:20140820--20141117[[email protected] shell]# ./test.sh 1 100起止时间依次是:20140810--20141117[[email protected] shell]# ./test.sh 1 1 <参数不对,第一个数字要小于第二个,退出此次操作!> [[email protected] shell]#

cleanup.sh#!/bin/bashLOG_DIR=/var/log
ROOT_UID=0     # 只有用户ID变量$UID值为0的用户才有root权限.
LINES=50       # 默认的行数
E_XCD=66       # 不能进入到目录时的退出代码值
E_NOTROOT=67   # 不是root用户时退出的代码值

# 必须以root用户运行,以下进行检测
if [ "$UID" -ne "$ROOT_UID" ]
then
  echo "Must be root to run this script."
  exit $E_NOTROOT
fi

if [ -n "$1" ]
# 测试是否提供了命令行参数(即是测试命令行参数至少有一个参数)
then
  lines=$1
else
  lines=$LINES # Default, if not specified on command line.
fi

#  Stephane Chazelas建议,
#+ 下面是一种更好的检测命令行参数的方法,
#+ 但是对于现在来说还是有些高级。
#
#    E_WRONGARGS=65  # 不是数字参数 (参数格式不对)时的退出码
#
#    case "$1" in
#    ""      ) lines=50;;
#    *[!0-9]*) echo "Usage: `basename $0` file-to-cleanup"; exit $E_WRONGARGS;;
#    *       ) lines=$1;;
#    esac
#
#* 可以跳到"循环"那章阅读开头一部分去了解上面的代码意思.

cd $LOG_DIR

if [ `pwd` != "$LOG_DIR" ]  # 也可以用  if [ "$PWD" != "$LOG_DIR" ]
                            # 如果工作目录不在/var/log里?
then
  echo "Can‘t change to $LOG_DIR."
  exit $E_XCD
fi  #在操作清空日志文件之前再次检查是否在正确的目录里

# 可以像下面再次确定是否在正确的目录里:
#
# cd /var/log || {
#   echo "Cannot change to necessary directory." >&2
#   exit $E_XCD;
# }

tail -$lines messages > mesg.temp # 保存message日志文件最后面几行日志信息到临时文件.
mv mesg.temp messages             # 然后用临时文件覆盖messages日志文件

# cat /dev/null > messages
#* 上面这句把messages日志文件全部清空,这样没有上面那样保留最后几行安全

cat /dev/null > wtmp  #  ‘: > wtmp‘ and ‘> wtmp‘  have the same effect.
echo "Logs cleaned up."

exit 0
时间: 2024-10-24 23:38:13

Shell下变量比较的相关文章

shell中变量的使用(2)

shell中变量的几点知识: 变量: 1.在默认情况下,所有的变量都被看做字符串来存储的 2.变量区分大小写 3.在变量名前加$来访问内容 4.不需要声明 5.双引号中允许$扩展(用变量的值替换),单引号不行. 示例: s=hello         #(注意等号两边不能有空格) echo $s 环境变量: shell脚本开始执行时,一些变量会根据环境设置中的值进行初始化,这些变量就是环境变量.习惯大写字母. $HOME 当前用户的家目录 $PATH  以冒号分割的用来搜索命令的目录列表 $0 

笔记-Shell特殊变量

位置变量: $0: 获取当前执行shell的文件名称,如果执行脚本带路径那么就包括脚本路径 $n:  获取当前执行的shell脚本的第ng参数值,n=1..9,当n为0时表示脚本的文件名,如果n大于9,大括号括起来${10}. [[email protected] ~]# vim q.sh                     echo $1 $2 $3 $4 $5 $6 $7 $8 $9 ${10} ${11} ${12} ${13} ${14} ${15} 输出的结果 [[email pr

linux学习之shell脚本 ------- 变量

[本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020] 今天来看一下Shell中的一些变量. 变量类型: Shell中有以下几种变量: 1) 本地变量 2) 环境变量 3) 位置变量 4) 标准变量 5) 特殊变量 1) 本地变量 本地变量在用户现在的Shell生命周期的脚本中使用. 用法: variable-name=value set: 可以显示本地所有的变量 注意,本地变量如果加上readonly,则该本地变量不能被修改,

linux使用c shell 、b shell 环境变量的问题

(睡醒午觉后,头脑特别清晰,于是整理一篇把曹同学的昨天问题解答了^_^,收集资料的过程,也是学习的过程) 背景: 昨天快下班时,每次赶燕郊班车的曹同学都会准时跑掉,可是都已经快7点了,曹同学还在座位无动于衷,这很反常,过了一小会,曹同学跑过来. 曹同学:我犯错误了~~~把一台linux机器搞挂了~~~ me:10.10.0.5?告警中层? 曹同学:是的 me:挂了是什么情况? 曹同学:把mqadmin用户改成c shell后,所有命令都失效了... me:(觉得很神奇,但只要不是丢文件,只是登录

shell之变量

变量赋值 变量的赋值有五种:使用read命令,直接赋值,使用命令行参数,使用命令行的输出结果,从文件读取.1 先说一下从read命令吧:(主要是在需要交互时使用)Read命令是系统内置命令,语法格式为:read 变量1 变量2当Shell脚本执行到read命令时,将暂停脚本的执行并等待键盘的输入,当用户输入完毕并且敲下回车之后,将完成赋值操作,脚本继续执行.Read指令的规则:多个数据或变量之间用空格隔开若变量个数与数据个数相等时,对应取值若变量个数大于数据个数时,没有输入数据的变量取空值若变量

Windows64位安装GPU版TensorFlow 0.12,Power Shell下输入:安装Tensorflow的全教程

推荐使用powershell,只需要在cmd指令窗口输入powershell即可 下载64位Python3.5(一定要3.5!!)可以通过Python 3.5 from python.org 或 Python 3.5 from Anaconda 下载并安装Python3.5.2(注意选择正确的操作系统). 具体教程可以查看Python3.5.2百度经验安装,里面有个细节,自动设置环境变量,不能忘 安装VS2015,如果是2013的后面要加个插件,这是后话 为了使用国内镜像加速pip安装,需要如下

shell下的常用命令

1.help  显示所有内置命令的列表,或某一个内置命令的用法 #help //查看所有内置命令 #help 内置命令 //查看内置命令使用方法 #help -s 内置命令 //显示内置命令的语法格式,非常好用哦! [[email protected] var]# help -s cd cd: cd [-L|-P] [dir] 2.echo 用来显示一行文字,默认会自动换行 [[email protected] ~]# echo www www -e 让字符串中的特殊字符起作用.例如: [[em

shell自定义变量

一.Shell定义变量需要遵循的规则 Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则: 首个字符必须为字母(a-z,A-Z) 中间不能有空格,可以使用下划线(_) 不能使用标点符号 不能使用bash里的关键字(可用help命令查看保留关键字) 二.shell变量赋值 需要给变量赋值时,可以这么写:   变量名=值 三.shell变量的引用 要取用一个变量的值,只需在变量名前面加一个$ ( 注意: 给变量赋值的时候,不能在"="两边留空格 ).例如:#!/bin/

Bash shell和变量详解

本文的结构:bash shell简介-->变量和变量操作.数组-->bash的环境配置文件分析 什么是shell: 操作系统是一组软件,用于控制整个硬件和管理系统活动,若直接使用操作系统,操作不当会导致系统崩溃,用户不可随意操作,所以通过"shell"将我们输入的命令与内核通信,让内核准确的控制硬件工作 shell是在操作系统上开发的应用程序,是用户可操作的最外层,也就是"shell"壳 什么是bash Bourne Again SHell,Bourne