最近老大让写一个shell脚本,每天从一个固定IP中取到相应文件,所以想写一个简单的shell脚本命令,供大家学习交流。先做一个简单的例子,先看效果吧,

代码如下:

#!/bin/sh 
#定义一个变量datetime,并赋值
datetime=$1
if [ ! -n "$datetime" ] ;then
echo "你没有输入任何文字!!!"
else
echo "你输入的文字是 $datetime "
fi ##注意事项 1、在符号“=”的前后不能有空格,2、"datetime=$1"中$1为系统提供的位置参数,$0代表程序的名称,[$1/$2/...]从1开始为传递的参数。

  

 #!/bin/sh
# . Time
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 1.1 get the time
path=/work/forecast/plot
system_time_utc=`date -d"1 day ago" +"%Y%m%d"`
# system_time_utc=`date -u +%Y%m%d%H`
# data_year=`date -u +%Y`
# data_month=`date -u +%m`
# data_day=`date -u +%d`
#获取系统时间
echo $system_time_utc
#定义公共路径
echo $path1
if [ ! -d "$path " ]; then
echo "$path 不存在"
else
echo "$path 已经存在"
fi
######通过逗号为分隔符,拆分为数组格式数据进行循环操作。
a="asd,mnc,cvb"
OLD_IFS="$IFS"
IFS=","
arr=($a)
IFS="$OLD_IFS"
#############第一次for循环######################
for s in ${arr[@]} do
b="qwe1,qwe2,qwe3,qwe4,qwe5,qwe6"
OLD_IFS="$IFS"
IFS=","
arrb=($b)
###########第二次for循环
for ss in ${arrb[@]}
do
hourly=$path/$s/$system_time_utc""/hourly
daily=$path/$s/$system_time_utc""/daily
file_hour=$s"_"$ss"_hourly_"$system_time_utc.tar
file_day=$s"_"$ss"_daily_"$system_time_utc.tar
if [ ! -f "$hourly/$file_hour " ]; then
mkdir $hourly
wget --ftp-user=用户名 --ftp-password=密码 ftp://ip地址//文件夹//$file_hour -P $hourly
cd $hourly
tar -xvf $file_hour ##解压.tar文件
else
echo " $hourly 已经存在"
fi
if [ ! -d "$daily/$file_day " ]; then
mkdir $daily
####################### 通过wget的方式从ftp上下载文件 ################
wget --ftp-user=用户名 --ftp-password=密码 ftp://ip地址//文件夹//$file_day -P $daily
cd $daily
tar -xvf $file_day
else
echo " $daily 已经存在"
fi done
done ######### 敏感参数随机命名了,大家可以替换自己的参数,wget --ftp-user=用户名 --ftp-password=密码 ftp://ip地址//文件夹 中的用户名密码及ip地址均为ftp的。
 1  linux  文件比较运算符
-e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]
-d filename 如果 filename为目录,则为真 [ -d /tmp/mydir ]
-f filename 如果 filename为常规文件,则为真 [ -f /usr/bin/grep ]
-L filename 如果 filename为符号链接,则为真 [ -L /usr/bin/grep ]
-r filename 如果 filename可读,则为真 [ -r /var/log/syslog ]
-w filename 如果 filename可写,则为真 [ -w /var/mytmp.txt ]
-x filename 如果 filename可执行,则为真 [ -L /usr/bin/grep ]
filename1-nt filename2 如果 filename1比 filename2新,则为真 [ /tmp/install/etc/services -nt /etc/services ]
filename1-ot filename2 如果 filename1比 filename2旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
-z string 如果 string长度为零,则为真 [ -z "$myvar" ]
-n string 如果 string长度非零,则为真 [ -n "$myvar" ]
string1= string2 如果 string1与 string2相同,则为真 [ "$myvar" = "one two three" ]
string1!= string2 如果 string1与 string2不同,则为真 [ "$myvar" != "one two three" ]
算术比较运算符
num1-eq num2 等于 [ -eq $mynum ]
num1-ne num2 不等于 [ -ne $mynum ]
num1-lt num2 小于 [ -lt $mynum ]
num1-le num2 小于或等于 [ -le $mynum ]
num1-gt num2 大于 [ -gt $mynum ]
num1-ge num2 大于或等于 [ -ge $mynum ]

linux 常用shell脚本语句的更多相关文章

  1. Linux常用Shell脚本珍藏【转载】

    我们在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运维常用的脚本.如何学好脚本,最关键的 ...

  2. Linux常用shell脚本

    在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,如何学好脚本,最关键的是就是大量的练习 和实践. 1.用Sh ...

  3. 常用shell脚本命令

    常用shell脚本命令 1.显示包含文字aaa的下一行的内容: sed -n '/aaa/{n;p;}' filename 2.删除当前行与下一行的内容: sed -i '/aaa/{N;d;}' f ...

  4. Linux/Unix shell 脚本中调用SQL,RMAN脚本

    Linux/Unix shell脚本中调用或执行SQL,RMAN 等为自动化作业以及多次反复执行提供了极大的便利,因此通过Linux/Unix shell来完成Oracle的相关工作,也是DBA必不可 ...

  5. 8个DBA最常用的监控Oracle数据库的常用shell脚本

    本文介绍了8个常用的监控数据shell脚本.首先回顾了一些DBA常用的Unix命令,以及解释了如何通过Unix Cron来定时执行DBA脚本.网上也有好多类似的文章,但基本上都不能正常运行,花点时间重 ...

  6. 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器

    本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...

  7. 使用C#给Linux写Shell脚本(下篇)

    在上篇的<使用C#给Linux写Shell脚本>结尾中,我们留下了一个关于C#如何调用BashShell的问题.在文章发布之后,我留意到有读者留言推荐使用“Pash”(一款类PowerSh ...

  8. 从windows到linux的shell脚本编码和格式问题

    从windows到linux的shell脚本编码和格式问题   从windows到Linux的shell脚本编码和格式问题 1.异常问题 :set ff=unix 启动脚本在启动时报错比如执行sh s ...

  9. Linux执行shell脚本方式及区别&命令后台运行

    Linux执行shell脚本方式及区别&命令后台运行 http://blog.csdn.net/heqiyu34/article/details/19089951/

随机推荐

  1. ntp时间服务同步

    第一种方式:同步到网络时间服务器 # ntpdate time.windows.com将硬件时间设置为当前系统时间. #hwclock –w 加入crontab: 30 8 * * * root /u ...

  2. [集合]解决system权限3389无法添加的用户情况

    Webshell有了SYSTEM权限,却无法成功添加administrators用户,因此导致无法成功连接3389.总结原因有以下几点:I.杀软篇1,360杀毒软件2,麦咖啡杀毒软件3,卡巴斯基杀毒软 ...

  3. GSL 1.15 and 1.16 building with Visual Studio 2010 --FROM 4fire

    http://4fire.wordpress.com/2012/03/18/gsl-1-15-building-with-visual-studio-2010/ Update 05/02/2014: ...

  4. Node.js学习笔记(4)——除了HTTP(服务器和客户端)部分

    很多node入门的书里面都会在介绍node特性的时候说:单线程,异步式I/O,事件驱动. Node不是一门语言,它是运行在服务器端的开发平台,官方指定语言为javascript. 阻塞和线程: 线程在 ...

  5. 思维探索者:完善个人知识体系的重要性 Google只会告诉你结果

    http://www.nowamagic.net/librarys/veda/detail/1711前面说了,人类解决问题大部分时候会习惯性地使用联想思维,简言之就是首先枚举你关于这个问题能够想到的所 ...

  6. 【转载】关于 .Net 逆向的那些工具:反编译篇

    在项目开发过程中,估计也有人和我遇到过同样的经历:生产环境出现了重大Bug亟需解决,而偏偏就在这时仓库中的代码却不是最新的.在这种情况下,我们不能直接在当前的代码中修改这个Bug然后发布,这会导致更严 ...

  7. Bootstrap学习速查表(二) 排版及表格

    一.h1~h6标签 固定不同级别标题字体大小,h1=36px,h2=30px,h3=24px,h4=18px,h5=14px和h6=12px. 1.重新设置了margin-top和margin-bot ...

  8. WebStorm 常用功能

    WebStorm 常用功能的使用技巧分享 WebStorm 是 JetBrain 公司开发的一款 JavaScript IDE,使用非常方便,可以使编写代码过程更加流畅. 本文在这里分享一些常用功能的 ...

  9. 扒一扒P2P风控的底牌(转)

    互联网金融,这里面水就太深了,能当理财买的一般有两类,一个是货币基金,比如余额宝,这个大家已经十分清楚了,没什么风险, 但问题就是收益越来越低.实在是不过瘾了.而另外一种就是P2P理财了,收益很高,也 ...

  10. 部署mongodb中需要注意的调参

    部署mongodb的生产服务器,给出如下相关建议: 使用虚拟化环境: 系统配置 1)推荐RAID配置 RAID(Redundant Array of Independent Disk,独立磁盘冗余阵列 ...