详细解读CentOSShell编程

简介: 详细解读CentOSShell编程

目录

函数 作用域 脚本传参

函数

【 root@stock.data.news.100 pts/0 2021-01-02/31@6 20:58:42 ~ 】

# cat test.sh

#!/bin/bash

abc()

{

echo "1 step"

return 11 # 遇到 return 后,立即跳出函数体,导致 return 后面的语句无法执行。同时 return 返回函数的执行状态。

echo "2 step"

}

abc

echo $?

【 root@stock.data.news.100 pts/0 2021-01-02/31@6 20:58:46 ~ 】

# bash test.sh

1 step

11

【 root@stock.data.news.100 pts/0 2021-01-02/31@6 21:56:22 ~ 】

# cat test.sh

#!/bin/bash

abc()

{

local speed=$1 # 函数也具有 $1 $2 $# $ 等于脚本接收参数的功能一样。

echo $(($speed + 100)) # 作为函数的返回值,而不是使用 return 作为返回值

}//代码效果参考:http://www.ezhiqi.com/zx/art_3504.html

my_speed=$(abc 50) # $(abc 50) 调用函数

echo $my_speed

【 root@stock.data.news.100 pts/0 2021-01-02/31@6 21:56:26 ~ 】

# bash test.sh

150

变量作用域

【 root@stock.data.news.100 pts/0 2021-01-02/31@6 21:04:05 ~ 】

# cat test.sh

#!/bin/bash

abc()

{

local speed=100 # local 将变量设置局部变量

}

abc

echo $speed

【 root@stock.data.news.100 pts/0 2021-01-02/31@6 21:04:08 ~ 】

# bash test.sh

【 root@stock.data.news.100 pts/0 2021-01-02/31@6 21:08:46 ~ 】

# cat test.sh

#!/bin/bash

abc()

{

aaa()

{

speed=100

}//代码效果参考:http://www.ezhiqi.com/bx/art_7639.html

}//代码效果参考:http://www.ezhiqi.com/zx/art_7374.html

abc # 执行函数 abc,则将 aaa 函数也预处理

aaa # 若没有执行 abc,直接调用 aaa ,则会报错

echo $speed # 变量无论在哪里定义,都是全局变量(除非使用 local 关键字定义)

【 root@stock.data.news.100 pts/0 2021-01-02/31@6 21:08:51 ~ 】

# bash test.sh

100

传参

【 root@stock.data.news.100 pts/0 2021-01-02/31@6 21:46:47 ~ 】

# cat test.sh

#!/bin/bash

echo "脚本名称(\$0): $0"

echo "第一个参数(\$1): $1"

echo "第二个参数(\$2): $2"

echo "参数的总数(\$#): $#"

echo "所有 参数(\$): $"

echo "所有参数(\$@): $@"

echo "该脚本进程ID(\$\$): $$"

echo -e '\nfor $*'

j=1

for i in $*

do

echo $i $j

j=$(($j + 1))

done

echo -e '\nfor $@'

j=1

for i in $@

do

echo $i $j

j=$(($j + 1))

done

echo -e '\nfor "$*"'

j=1

for i in "$*"

do

echo $i $j

j=$(($j + 1))

done

echo -e '\nfor "$@"'

j=1

for i in "$@"

do

echo $i $j

j=$(($j + 1))

done

【 root@stock.data.news.100 pts/0 2021-01-02/31@6 21:46:49 ~ 】

# bash test.sh ab cd ef

脚本名称($0): test.sh # 若 bash /root/test.sh ab cd ef ,那么$0 则显示完整路径。通过 dirname 提取路径,basename 提取文件名

第一个参数($1): ab

第二个参数($2): cd

参数的总数($\#): 3

所有参数($*): ab cd ef

所有参数($@): ab cd ef

该脚本进程ID($$): 2265

for $

ab 1

cd 2

ef 3

for $@

ab 1

cd 2

ef 3

for "$*"

ab cd ef 1

for "$@"

ab 1

cd 2

ef 3

相关文章
|
Linux
linux(CentOS)基础命令大全
1.关机 (系统的关机、重启以及登出 ) 的命令shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3) shutdown -h hours:minutes & 按预定时间关闭系统 shutdown -c 取消按预定时间...
2615 0
|
10月前
|
存储 关系型数据库 Linux
Linux之centos7安装配置及Linux常用命令
Linux之centos7安装配置及Linux常用命令
359 0
|
10月前
|
Unix Linux 开发工具
【Linux】centos7安装配置及Linux常用命令
【Linux】centos7安装配置及Linux常用命令
289 1
|
4月前
|
监控 安全 Linux
|
4月前
|
网络协议 安全 Linux
Linux-Centos7学习笔记
Linux-Centos7学习笔记
118 0
|
9月前
|
Linux 网络安全 开发工具
centos7安装配置以及Linux常用命令
centos7安装配置以及Linux常用命令
147 0
|
10月前
|
JavaScript Unix Java
centos7安装配置及Linux常用命令
centos7安装配置及Linux常用命令
149 0
|
网络协议 Linux 网络安全
Linux_centos7_常用指令
Linux_centos7_常用指令
|
网络协议 Java Linux
Linux(发行版:CentOS)学习(一):基础命令 & 相关文件操作命令
Linux(发行版:CentOS)学习(一):基础命令 & 相关文件操作命令
Linux(发行版:CentOS)学习(一):基础命令 & 相关文件操作命令
|
Linux Shell 编译器
Linux入门教程:CentOS 7 安装 Python 3.7, CentOS 的第
Python 3.7 稳定版已经发布,Python 3.7 具有很多新特性,新用户推荐使用 Python 3.7,本文介绍如何在 CentOS7 系统上安装 Python 3.7,因为 CentOS 7 系统自带的 Python 版本是 Python 2.7。
1123 0