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

shell脚本基础命令学习(一)

时间:2017-11-23 08:40:44      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:input   mod   简单   echo   匹配   call   .com   分享   转换   

shell的作用是解析用户的指令,将shell指令按照特定的流程,组合形成脚本。

查看当前系统shell版本:

技术分享图片

编写一个简单的shell脚本后,可以使用下面几种方法来执行:

1,使用chmod给脚本增加x权限,如:chmod +x test.sh

2,/bin/sh 或者 /bin/bash 执行脚本(会创建子进程)

3,source ./test.sh 脚本执行

4,小括号方式,会创建子进程

技术分享图片

 

环境变量,可以直接设置,例如var=100,使用unset var可以删除

技术分享图片

 

通配符:

*      匹配一个或多个任意字符

?      匹配一个任意字符

[若干字符]  匹配括号内任意一个字符

 

命令代换:

技术分享图片

小括号:

技术分享图片

 

算术转换:

技术分享图片

进制转换:

技术分享图片

转义字符和特殊字符:

技术分享图片

 

条件分支:

$? 代表返回值0为真,1为假

test 或者 [] 可以作为表达示判断

gt(大于),lt(小于),eq(等于),ne(不等于),le(小于等于),ge(大于等于)

技术分享图片

 括号判断,-f是普通文件,-d是文件夹,-z判断字符串是否为空

技术分享图片

 

逻辑判断:

逻辑非 !

逻辑与 -a

逻辑或 -o

如:[ -f a.txt -a -d a.txt ]

要注意括号两边的空格,如果没有会出错

 

if分支语句:

echo "are you boy?"
read yy
if [ "$yy" = "yes" ];then
    echo "you are a boy"
elif [ "$yy" = "no" ]
    echo "you are a girl"
else
    echo "idk"
fi

  case分支语句:

echo "are you a boy?"
read yy

case "$yy" in
    y|yes|YES)
        echo "you are a boy";;
    [nN]*)
        echo "you are a girl";;
    *)
        echo "idk"
        exit 1;;
esac

  for循环语句:

for i in x y z
do
    echo "$i"
done

  while循环语句:

echo "please input your passwd"
read yy

while [ "$yy" != "123" ];do
    echo "sorry,try again"
    read yy
done

echo "login success"

  计算1+2+3+。。。。100求和:

sum=0
i=1

while [ $i -lt 101 ];do
    sum=$[sum+i]
    i=$[i+1]
done

echo $sum

  位置参数和特殊变量:

$0             相当于C语言main函数的argv[0]
$1、$2...    这些称为位置参数(Positional Parameter),相当于C语言main函数的argv[1]、argv[2]...
$#             相当于C语言main函数的argc - 1,注意这里的#后面不表示注释
$@             表示参数列表"$1" "$2" ...,例如可以用在for循环中的in后面。
$*             表示参数列表"$1" "$2" ...,同上
$?             上一条命令的Exit Status
$$             当前进程号

  函数的使用:

foo(){
    echo "$0 - $1"
}

echo "start call foo"
foo 11 22
echo "end call"

  远程文件传送补充:

scp 1.txt ubuntu@192.168.11.11:/home/ubuntu

  

 

shell脚本基础命令学习(一)

标签:input   mod   简单   echo   匹配   call   .com   分享   转换   

原文地址:http://www.cnblogs.com/kellerfz/p/7881516.html

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