shell编程常用命令总结(二)

介绍:

shell:简单、易用、高效,是一个内置的脚本,不需下载

什么是脚本:一条一条命令的堆积

shell 是一个程序,一般都是放在/bin或者/user/bin目录下,当前 Linux 系统可用的 Shell 都记录在/etc/shells文件中。/etc/shells是一个纯文本文件,你可以在图形界面下打开它,也可以使用 cat 命令查看它。

在现代的 Linux 上,sh 已经被 bash( Bourne Again Shell) 代替,/bin/sh往往是指向/bin/bash的符号链接。 所谓的符号链接就是软连接。

一、shell脚本

(1)新建shell脚本:

vim test.sh

 test.sh内容
 #!/bin/bash
echo "Hello World !"

test.sh,扩展名为 sh(sh代表shell)

(2)执行shell脚本

./test.sh  #执行脚本

(3)Shell 注释
# 开头的行就是注释,会被解释器忽略。

# 这是一个注释

多行注释

:<<'
注释内容
注释内容
注释内容
'

# 或

:<<!
注释内容
注释内容
注释内容
!

二、shell变量

(1)定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:

str = "shell"
变量名的命名须遵循如下规则:

命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
中间不能有空格,可以使用下划线(_)。
不能使用标点符号。
不能使用bash里的关键字(可用help命令查看保留关键字)。

(2)使用变量
使用一个定义过的变量,只要在变量名前面加美元符号即可,如:

your_name="qinjx"
echo $your_name
echo ${your_name}

变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:

for skill in Ada Coffe Action Java; do
    echo "I am good at ${skill}Script"
done

(3)删除变量
使用 unset 命令可以删除变量。语法:

unset variable_name

变量被删除后不能再次使用。unset 命令不能删除只读变量 readonly myUrl (myUrl就是一个只读变量)

(4)字符串
字符串是shell编程中最常用最有用的数据类型字符串可以用单引号,也可以用双引号

三、向shell脚本传递参数

这里向test.sh脚本传递了三个参数,分别是 1 2 3

$ ./test.sh 1 2 3

四、shell 数组

Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小

my_array=(A B C D)

五、shell运算符

Shell 基本运算符

六、Shell echo命令

Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:

echo "It is a test"

Shell printf 命令和echo命令类似,都是文本输出

七、Shell test 命令

Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。

八、Shell 流程控制

(1)if else

a=10
b=20
if [ $a == $b ]
then
   echo "a 等于 b"
elif [ $a -gt $b ]
then
   echo "a 大于 b"
elif [ $a -lt $b ]
then
   echo "a 小于 b"
else
   echo "没有符合的条件"
fi

(2)for 循环

for loop in 1 2 3 4 5
do
    echo "The value is: $loop"
done

(3)while 语句

#!/bin/bash
int=1
while(( $int<=5 ))
do
    echo $int
    let "int++"
done

(4)until 循环
until 循环执行一系列命令直至条件为 true 时停止

#!/bin/bash

a=0

until [ ! $a -lt 10 ]   #lt表示小于,当a不小于10时为true
do
   echo $a   #输出0~9
   a=`expr $a + 1`
done
数值运算符:
-eq           //等于

-ne           //不等于

-gt            //大于 (greater )

-lt            //小于  (less)

-ge            //大于等于

-le            //小于等于

(5)case
Shell case语句为多选择语句,case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构

echo '输入 1 到 4 之间的数字:'
echo '你输入的数字为:'
read aNum
case $aNum in
    1)  echo '你选择了 1'
    ;;
    2)  echo '你选择了 2'
    ;;
    3)  echo '你选择了 3'
    ;;
    4)  echo '你选择了 4'
    ;;
    *)  echo '你没有输入 1 到 4 之间的数字'
    ;;
esac

(6)跳出循环
在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,Shell使用两个命令来实现该功能:break和continue

九、Shell 函数

#!/bin/bash

funWithReturn(){
    echo "这个函数会对输入的两个数字进行相加运算..."
    echo "输入第一个数字: "
    read aNum
    echo "输入第二个数字: "
    read anotherNum
    echo "两个数字分别为 $aNum$anotherNum !"
    return $(($aNum+$anotherNum))
}
funWithReturn   # 调用函数
echo "输入的两个数字之和为 $? !"

函数参数
在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数…

带参数的函数示例:

#!/bin/bash

funWithParam(){
    echo "第一个参数为 $1 !"
    echo "第二个参数为 $2 !"
    echo "第十个参数为 $10 !"
    echo "第十个参数为 ${10} !"
    echo "第十一个参数为 ${11} !"
    echo "参数总数有 $# 个!"
    echo "作为一个字符串输出所有参数 $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73   # 向函数中传递参数

十、Shell文件包含

和其他语言一样,Shell 也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件。

在test2.sh中引用test1.sh文件:

#使用 . 号来引用test1.sh 文件
. ./test1.sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值