详细解读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

相关文章
|
8月前
|
运维 监控 Linux
【热门话题】CentOS 常见命令指南
此文档是CentOS常用命令指南,涵盖文件操作、系统管理、网络配置、软件安装更新等方面。包括切换目录(`cd`)、查看目录(`ls`)、创建/删除目录(`mkdir`, `rmdir`, `rm`)、文件查看编辑(`cat`, `less`, `vi/vim`)、系统信息(`uname -a`, `hostname`, `top`)、用户权限管理(`useradd`, `passwd`, `sudo`, `chmod`, `chown`)、软件包管理(`yum`或`dnf`)、网络状态(`ip addr`, `ping`)、进程管理(`ps`, `kill`, `nohup`, `jobs`
136 1
|
8月前
|
Web App开发 缓存 运维
CentOS命令大全:从入门到精通
CentOS命令大全:从入门到精通
511 1
|
Linux 开发工具 Python
CentOS 常见经验和技巧总结
CentOS下添加路径到环境变量根据权限等设置有不同的情况,一般分为以下三种:
|
Ubuntu Linux Shell
centos命令大全
centos命令大全
331 0
|
Ubuntu JavaScript Linux
centos7.4常用命令
centos7.4常用命令
224 0
|
Linux
Centos新手指南
Centos新手指南
317 0
Centos新手指南
|
Linux Shell 数据安全/隐私保护
|
Shell Linux
centOS 7 基础命令
查看内核版本详细 :#uname -r查看centOS版本信息 :#cat /etc/centos-release显示用户名和登陆时间 : who 什么是 shell shell被称为 LINUX的命令解释器shell是一种高级程序设计语言 查看内存...
1407 0
|
Linux
CentOS 常用命令
centos,linux 常用的命令备忘。
1115 0