详细解读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月前
|
Ubuntu Linux Shell
ubuntu的学习与总结
在Ubuntu的学习中,了解了Linux的文件系统结构,所有内容都从根目录/开始,没有像Windows那样的盘符。
147 0
|
Linux
linux(CentOS)基础命令大全
1.关机 (系统的关机、重启以及登出 ) 的命令shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3) shutdown -h hours:minutes & 按预定时间关闭系统 shutdown -c 取消按预定时间...
2784 0
|
4月前
|
网络协议 Linux Shell
CentOS7系统命令学习笔记(一)
CentOS7系统命令学习笔记(一)
114 12
|
4月前
|
Linux
CentOS7系统命令学习笔记(二)
CentOS7系统命令学习笔记(二)
74 10
|
4月前
|
Linux Shell API
CentOS7系统命令学习笔记(三)
CentOS7系统命令学习笔记(三)
79 8
CentOS 系统常用命令详解
本文介绍了CentOS中11个常用的命令,包括`ls`(列出文件和目录)、`cd`(切换目录)、`pwd`(显示当前目录)、`mkdir`(创建目录)、`rm`(删除文件/目录)、`cp`(复制文件/目录)、`mv`(移动/重命名文件)、`cat`(查看文件内容)、`grep`(搜索文件内容)和`top`(显示系统进程信息)以及`yum`(包管理器)。学习这些命令能提升系统管理和操作效率。
|
IDE Linux 网络安全
第三章 安装CentOS7.x
第三章 安装CentOS7.x
174 0
|
Ubuntu Linux Shell
centos命令大全
centos命令大全
333 0
|
Linux
Centos新手指南
Centos新手指南
319 0
Centos新手指南
|
Linux Shell 数据安全/隐私保护