加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Shell编程基础

发布时间:2020-12-15 21:38:26 所属栏目:安全 来源:网络整理
导读:? 1. cat? /etc/shells #查看系统中安装的 shell ? 2.eg1. #!/bin/bash echo "Hello World !" ? 3.Shell 脚本的执行: chmod +x ./hello.sh?? #使脚本具有执行权限 ./hello.sh??? #执行脚本 /bin/sh /root/hello.sh #作为解释器参数运行, 不需要在第一行指

?

1.cat?/etc/shells #查看系统中安装的 shell

?

2.eg1.

#!/bin/bash

echo "Hello World !"

?

3.Shell 脚本的执行:

chmod +x ./hello.sh?? #使脚本具有执行权限

./hello.sh??? #执行脚本

/bin/sh /root/hello.sh #作为解释器参数运行,不需要在第一行指定解释器信息(shell种类),写了也不生效

简写为: sh /root/hello.sh

?

4.shell变量定义和引用:

your_name="itcast? .? cn" #变量名和等号之间不能有空格

echo $your_name

echo ${your_name}

变量名的命名须遵循如下规则:
l 首个字符必须为字母( a-z, A-Z)
l 中间不能有空格,可以使用下划线( _)
l 不能使用标点符号
l 不能使用 bash 里的关键字(可用 help 命令查看保留关键字)

readonly variable_name?只读

unset variable_name?删除

?

5.变量类型:

局部变量、环境变量(set?#查看当前环境变量)、shell变量(shell 程序设置的特殊变量)。

?

6.参数传递:

在执行 Shell 脚本时, 可以向脚本传递参数。
脚本内获取参数的格式为: $n n 代表一个数字, 1 为执行脚本的第一个参
数, 2 为执行脚本的第二个参数,以此类推…… $0 表示当前脚本名称

eg.??./test.sh 1 2 3

注:特殊字符:

$#

传递到脚本的参数个数

$*

以一个单字符串显示所有向脚本传递的参数。

$$

脚本运行的当前进程 ID

$!

后台运行的最后一个进程的 ID

[email?protected]

$*相同,但是使用时加引号,并在引号中返回每个参数。

$?

显示最后命令的退出状态。 0 表示没有错误,其他任何值表明有错误。

7.$*[email?protected]区别

?

相同点: 都表示传递给脚本的所有参数。
不同点:
不被" "包含时, $*[email?protected]都以$1 $2… $n 的形式组成参数列表。
" "包含时, "$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式组成一个整串; "[email?protected]" 会将各个参数分开,以"$1" "$2" … "$n" 形式组成一个参数列表。

?

8.Shell 运算符

?

支持包括:算术、关系、 布尔、字符串等运算符。 原生 bash 不支持简单的数学运算,但是可以通过其他命令来实现。

?

eg.? ?echo `expr $a + $b`??echo `expr $b - $a`? echo `expr $a * $b`? echo `expr $b / $a`

此外,还可以通过(()) $[]进行算术运算。

count=1

((count++))

echo $count

a=$((1+2))

?

a=$[1+2]

?

9.流程控制:

?

?

?

变量类型

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读