Linux shell编程入门

1.第一个shell脚本

    创建一个test.sh文件,并书写下面内容

    #!/bin/bash

    echo "Hello World!" 

    "#!" 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。

    echo命令用于向窗口输出文本。

2.运行shell脚本

    1.作为可执行程序

        chmod +x ./test.ch    使脚本具有执行权限

        ./test.ch                    执行脚本

    2.作为解析器参数

        /bin/sh test.ch

        /bin/php test.php

        这种执行方式不需要写#!/bin/bash,写了也没有

3.变量

        首个符号必须是字母

        中间不能出现空格,可以使用下划线(_)

        本能使用标点符号

        不能使用bash里的关键字(可以使用help查看保留的关键字)

        you_name = "hello world!"

        for file in `ls /etc`

        使用变量

            echo $you_name

            echo ${you_name}

            echo "hello $you_name"

        获取字符串长度 ${#you_name}

        提取子字符串 ${you_name:1:4}

        查找子字符串 `expr index "$you_name" is`

        Shell数组

            array_name = (value0 value1 value2 ...)

            array_name[n] = valuen

        读取数组

            value = ${array_name[n] }

            使用@符号可以获取数组中所有元素

            echo ${array_name[@]}

        获取数组的长度

            length = ${#array_name[@]}

            length = ${#array_name[*]}

            获取单个元素的长度 length = ${#array_name[n]}

        注解 #

4.执行脚本传递参数

        ./test.sh 1 2 3

        脚本中使用传递参数 $1 $2 $3 ... $n

        $# 传递脚本的个数

        $*、$@ 以一个字符串显示所有传递参数

        $$ 脚本运行的当前进程ID

        $! 后天运行的最后一个进程ID

        $- 显示Shell使用的当前选项

        $? 显示最后命令的推出状态,0表示没错误,其他值都表示有错误

5.运算符

        算数运算符 + - * / % = == !=

            val = `expr 2 + 2 `

            echo "两数的和 $val "

        关系运算符 -eq -nq -gt -lt -ge -le

        布尔运算符 !(非) -o(或) -a(与)

        逻辑运算符 && ||

        字符串运算符 = != -z(长度是否为0) -n(长度是否为0) str(是否为null)

        文件测试运算符

            -b file、-c file、-d file、-f file、-g file、-k file、-p file、-u file、-r file、-w file、-x file、-s file、-e file

6.echo命令

        显示换行 echo -e "OK\n" -e

        显示bu换行 echo -e "OK\c" -e

        显示结果定向到文件 echo "It is a test" > myfile

        原样输出字符串,不进行转义或去变量(用单引号) echo '$name\"'

        显示命令执行结构 echo `date`

7.printf命令

printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg  
printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234 
printf "%-10s %-8s %-4.2f\n" 杨过 男 48.6543 
printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876 
姓名     性别   体重kg
郭靖     男      66.12
杨过     男      48.65
郭芙     女      47.99

%s %c %d %f都是格式替代符

%-10s 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。

%-4.2f 指格式化为小数,其中.2指保留2位小数。

7.test命令

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


数值测试

参数说明
-eq等于则为真
-ne不等于则为真
-gt大于则为真
-ge大于等于则为真
-lt小于则为真
-le小于等于则为真

实例演示:

num1=100
num2=100
if test $[num1] -eq $[num2]
then
    echo '两个数相等!'
else
    echo '两个数不相等!'
fi

输出结果:

两个数相等!
8.流程控制

     条件控制

if condition1
then
    command1
elif condition2
    command2
else
    commandN
fi

      循环

for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done
for loop in 1 2 3 4 5
do
    echo "The value is: $loop"
done
while condition
do
    command
done
until condition
do
    command
done
case 值 in
模式1)
    command1
    command2
    ...
    commandN
    ;;
模式2)
    command1
    command2
    ...
    commandN
    ;;
esac

break 跳出循环

continue 终止当前循环,进行下次循环

9.函数

    定义

        函数名(){code   [return int]}

    调用函数名()

    函数参数

#!/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
10.输入输出重定向

命令说明
command > file将输出重定向到 file。
command < file将输入重定向到 file。
command >> file将输出以追加的方式重定向到 file。
n > file将文件描述符为 n 的文件重定向到 file。
n >> file将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m将输出文件 m 和 n 合并。
n <& m将输入文件 m 和 n 合并。
<< tag将开始标记 tag 和结束标记 tag 之间的内容作为输入。
11.文件包含

#!/bin/bash
# author:W3Cschool教程
# url:www.w3cschool.cn

#使用 . 号来引用test1.sh 文件
. ./test1.sh

# 或者使用以下包含文件代码
# source ./test1.sh

echo "W3Cschool教程官网地址:$url"

$ chmod +x test2.sh 
$ ./test2.sh 
W3Cschool教程官网地址:http://www.w3cschool.cn



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值