栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Shell脚本

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Shell脚本

一、概述
    一般以.sh文件后缀来代表某个文件是个脚本文件脚本文件是文本文件,所以不能直接执行,所以需要解释器,目前最好用的解释器之一bashjava语言是跨平台的,.java--->.class,  .class文件通过java虚拟机来解释执行java虚拟机:其实就相当于main.exe一个可执行文件,专门来解释执行.class的java相对于C/C++效率低的原因,因为C/C++可以直接产生.exe文件执行,java必须借助java虚拟机来执行。解释型与编译型的区别(面试):解释型需要解释器
二、脚本的执行
    脚本文件第一行以  #!开头,后边解释器的路径,不写的话用的是系统默认的,eg:#!usr/bin/bash脚本文件中单独的一行开头为#代表屏蔽执行的时候命令 eg:/usr/bin/bash my.sh   这句执行代表的意思是启动bash这个解释器(程序),将my.sh当参数传进去。 但是通常会直接说执行这个脚本如果直接 ./my.sh 是会出错的,因为my.sh 并没有执行权限,如果先通过chmod命令将它改变成可执行文件,就可以执行。具体的过程是:执行这个文件时,看到#!开头,知道它是一个脚本文件,后边指定了它的解释器,就启动解释器去执行
三、脚本的写法 1.变量 本地变量
#!/usr/bin/bash
#脚本语言的变量是让一个变量名指向一块空间,C语言的变量定义时候将它与一块空间关联起来
#脚本没有类型之说,只能说str是一个变量
#变量赋值时等号左右边不能有空格,比较字符串才有空格
str="wang"      
val=123

#打印命令echo,底下代表打印这个字符串,变量前边加$代表取val这个变量的值
echo $str
echo str 
echo $val

#底下打印出的值与上边并没有区别,加双引用并不改变,加单引号会按字符串输出
echo "str" 
echo "val = $val"

#从键盘获取数据,read+变量名
read a

exit 0
环境变量
#!/usr/bin/bash
#环境变量:在父进程中定义,继承过来使用的
#自己没用定义的,但是可以直接使用

echo "PATH=&PATH"
#$0 shell脚本的名字
#$# 传递给脚本的参数个数
#$PSI 输入命令提示符
#$$shell脚本的进程号

exit 0
参数变量
#!/usr/bin/bash
#为转义字符
#环境变量,$1为传给脚本的第一个参数,$2为传给脚本的第二个参数,以此类推
echo "$1=$1"
echo "$2=$2"
echo "$3=$3"

#一般有以下的用法
name=$1
passwd=$2

echo "name = $name,passwd = $passwd"
exit 0
2.条件
#!/usr/bin/bash

#比较命令test,满足执行then,fi代表条件判断结束

#字符串比较
echo "input"
read a
if test "hello" = "$a"
then 
  echo "=="
fi

#第二种方式  
if [ "hello" = "$a" ]
then    
   echo "=="
fi

#满足条件与不满足条件都有输出
#算数比较,判读是否大于-gt,判断是否大于等于-ge
if [ "$a" -gt 10 ]
then 
   echo "$a > 10"
else
   echo "$a <= 10"
fi

#文件条件测试
#判读是否为目录文件-d+文件名,判读是否为普通文件-f+文件名
if [ -d "$a" ]
then 
    echo "$a is dirent"
elif [ -f "$a ]
then 
    echo "$a is file"
else
    echo "$a not exist"
fi

i=0
#让变量自增
let "i+=1"
#expr表示执行算数运算符
i=`expr $i + 1`
echo "i=$i"

#如果要执行将ls这个命令,得加个括号,不然ls就是一个普通的变量,其他命令也是如此
str=$(ls)
echo "str=$str"
exit 0
3.循环
#循环有3中
#1.for循环,一般用于有限个值的操作

for filename in $(ls)
do 
    echo "$filename"
    sleep 1
done

#2.while循环
#while condition do states
#done
#while [ : ] 死循环
while [ "1" == "1" ]
do
    echo "run"
    sleep 1
done

#3.until循环,当condition不成立时循环,知道检测到一个东西的时候停止
#until condition do statements done


exit 0
四、脚本的优点

脚本的开发速度快对性能没有要求一般用脚本做脚本快的原因是通过执行一些命令去完成功能

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/704604.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号