码迷,mamicode.com
首页 > 系统相关 > 详细

shell脚本

时间:2017-06-22 12:13:55      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:提示信息   字符串   please   linux   hello   

1. Linux 脚本编写基础
程序必须以下面的行开始(必须放在文件的第一行):
#!/b#对变量赋值:

对变量的赋值

a="hello world"
# 输出变量a的内容:
echo $a
num=2
echo "this is the $numpp"
仅仅打印"this is the "
num=2
echo "this is the ${num}nd"
这将打印: this is the 2ndpp

1、常用命令

read命令
作用: 接收键盘输入
格式:read 选项 变量名
选项
-p 输出提示信息
-t 指定等待时间(秒),默认会一直等待用户输入
-n 指定接收的字符数
-s 隐藏输入的数据
read -p "please input your name" -t 10 name                 将用户输入的值赋予name

echo命令
echo  字符串                                   输出字符串或变量的值,默认输出后会换行,且不会识别特殊字符
echo -n  字符串                         输出字符串或变量的值,不换行
echo -e 字符串                          输出字符串或变量的值,在遇到 特殊字符时需转换,比如\n代表换行

符号

‘ ‘       单引号 在单引号中所有特殊符号均无特殊含义

" "       双引号 在双引号中,除“$”“\”外其他特殊符号都无特殊含义

$( )       括号中使用系统命令

$      调用变量的值

\      反斜杠 转义符,转义符的特殊字符无特殊含义

$#      代表命令行中参数的个数

$*      代表命令行中所有参数,把所有参数看成一个整体

$@      代表命令行中所有参数,把每个参数区别对待

$?      代表最后一次执行的命令的返回状态,返回变量值为0代表执行成功,否则不成功

条件判断

使用[   ]可以对条件进行测试,使用[[    ]]可以对多个条件进行判断

1.按文件类型判断
-e 判断文件是否存在
-d 判断文件是否存在,并且是否为目录
-f 判断文件是否存在,并且是否为普通文件

[-e /root/install.log]&&echo “yes”|| echo "no"         如果存在文件则输出yes,否则输出

2整数比较
整数1 -eq 整数2            判断是否相等
        -ne                       判断是否不等
        -gt                 判断整数1是否大于整数2
         -lt               判断整数1是否小于整数2
        -ge                判断整数1是否大于等于整数2
       -le                   判断整数1是否小于等于整数2

3字符串比较

-z                 判断字符串是否为空
-n                判断字符串是否不为空
字符串1     ==        字符串2                   判断字符串是否相等
字符串1     !=         字符串2                     判断字符串是否不等

a=""   [-z  "$a"]&&echo "yes"||echo "no"                  b=1  c=2   [-z  "$b"=="$c"]&&echo "yes"||echo "no"

if语句

if [ 条件判断式 ];

then   程序

fi

判断当前用户是否为root

#! /bin/bash
test=$(env|grep USER |cut -d "=" -f 2)        给test赋值
if [ "$test" = "root" ];                     比较语句
then
  echo "current user is root"
fi
if双分支语句
if [ 条件判断式 ]
then
  程序1
else
  程序2
fi
判断输入是否是一个目录
#!/bin/bashread -t 30 -p "please input derectory:" dir     输入一个目录名称
if [ -d "$dir" ];                                        比较
then
  echo "input is a directory"
else
  echo "input isnot a directory"
fi 
多分支if语句
 [ 条件1 ];

  程序
 [ 条件2 ];

  程序
  .....

  程序fi

for语句

for   变量 in 值1  值2  值3.....  

 do      程序    

done

#!/bin/bash#

s=0;

for((i=1;i<=100;i=i+1))            从1加到100

do

    s=$(($s+$i))  

done

echo "the sum is:$s"

while     语句

while [ 条件判断式 ]  

do  

程序  

done

#!/bin/bash                                   #从1加到100

i=1 s=0

while [ $i -le 100 ]  

do     s=$(($s+$i))     i=$(($i+1))  

done

echo "the sum is:$s"

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享



shell脚本

标签:提示信息   字符串   please   linux   hello   

原文地址:http://ybzbfs.blog.51cto.com/12765816/1940842

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!