Linux Shell脚本编程

8 篇文章 0 订阅

Shell为弱类型语言,在使用变量时不指定类型。

Shell脚本语言不需要编译就可以直接执行,但脚本文件默认没有执行权限,需要chmod添加执行权限

 

chmod +x test.sh

 

如果希望这个脚本文件只能由文件所有者执行(所属用户组和其他用户不可执行),那么可以将上面的命令改为:

 

chmod u+x test.sh

 

 

 

脚本文件开头第一行指定bin文件夹下的bash解释器,关于脚本第一行的探索可以看这里:点击打开链接

#!/bin/bash

echo "hello world"

 

下面列出shell脚本中一些常见的符号:

$     变量引用符

$#  表示命令行参数个数

$*   表示所有参数

$n  表示第n个参数(参数从1开始计数)

$?  表示最后一个命令执行之后的返回值

|     连接前后两个命令,将前面的命令返回值传给后面的命令,支持多命令连接

<    表示重定向输入

>    表示重定向输出

" "   表示字符串,双引号内可以引用变量或命令,要使用元字符需要加转义符\

` `   表示命令,单引号在键盘esc正下方

‘ ’    表示字符串,单引号内不可以引用变量或命令,一律视为普通字符。在单引号内,元义字符可以直接使用,如果要去掉元义需加转义符\

 

echo "today is `date`"                #date为系统命令
today is Sun Mar  5 10:18:51 HKT 2017

 

shell脚本中单行注释使用#,多行注释可以使用 :<<字符(开头)  ....   字符(结尾)

 

#这是单行注释

-------------------------

:<<!

这是多行注释
用的字符随意
但前后要一致

!
-------------------------

 

shell脚本也有跟C语言类似的语法,例如循环与分支的控制。下面给出一些简单示例,以便更直观地了解shell脚本语言与C语言的异同。

循环控制:

 

#while循环(当变量VAR为1时打印hello world)
while[$VAR=1]           #条件用[]括起来     
do
  echo "hello world"    #循环体用do跟done围起来
done

 

#for循环(打印从1到10)
for i in $(seq 1 10)
do
 echo $i
done

 

 

 

分支控制:

 

 

 

#if-else
if[$VAR=1]
then                     #在if后要加then
  echo "hello"
elif
then                     #在elif后要加then
  echo "world"
else                     #else后不需要加then
  echo "!"
fi                       #用fi表示if语句结束

 

#case(类似于switch)
case $VAR in
1)echo "hello";;                     #每个case单独分支用双分号结束
2)echo "world";;
esac                                 #用esac表示case语句结束

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值