Bash 教程-第十九、二十章

19. 实战

19.1 自定义两个常量数字相加

在 shell 脚本中计算两个整数(数字)的总和与在其他编程语言中一样非常简单。 Bash shell 提供了一个名为 expr 命令行程序来计算表达式。 最新版本的 Bash shell 还包括直接使用 shell 计算表达式的功能。在 shell 脚本中计算两个整数(数字)的总和与在其他编程语言中一样非常简单。 Bash shell 提供了一个名为 expr 的命令行实用程序来计算表达式。 最新版本的 Bash shell 还包括直接使用 shell 计算表达式的功能。

使用以下语法计算 shell 脚本中两个整数的和:

  • 第一种
    • 使用带引号的 expr 命令,
    • sum=`expr $num1 + $num2`
  • 第二种
    • 使用用括号括起来的 expr 命令并以美元符号开头
    • sum=$(expr $num1 + $num2)
  • 第三种
    • 双层括号
    • sum=$(($num1 + $num2))

在接下来的几个例子中,我们将讨论直接用 shell 计算数字的总和。您还可以选择 expr 命令给出上述语法。Bash shell 还直接计算数学表达式。您只需将表达式用双括号括起来,并用 $((...)) 之类的美元表示。编写一个示例 shell 脚本来初始化为两个数值变量。然后对两个值执行加法运算并将结果存储在第三个变量中。

示例

# 编写一个示例 shell 脚本来初始化两个数值变量
# 然后对两个值执行加法运算并将结果存储在第三个变量中。

a=10
b=20

sum=$(( $a + $b ))

echo "$a + $b 的和为: $sum"

执行

Bash 教程-第十九、二十章

19.2 使用命令行参数计算的总和

在第二个示例中,shell 脚本读取两个数字作为命令行参数并执行加法操作。

示例

#!/bin/bash

sum=$(( $1 + $2 ))

echo "$1 + $2 的和为: $sum"

执行

Bash 教程-第十九、二十章

19.3 计算运行时交互输入数据总和

这是另一个 shell 脚本示例,它在运行时接受用户的输入。然后计算给定数字的总和并存储到变量中并显示结果。

示例

#!/bin/bash
# 交互界面输入2个数字

read -p "输入第一个数字: " num1
read -p "输入第二个数字: " num2

sum=$(( $num1 + $num2 ))

echo "$num1 + $num2 和为: $sum"

执行

Bash 教程-第十九、二十章

19.4 连接两个字符串的 Shell 脚本

方法一

第一个例子是连接字符串变量的一般方法。您可以简单地一个接一个地编写所有变量:

示例

#!/bin/bash
# 连接两个字符串

str1="Hello "
str2="World!"

str3=$str1$str2

echo $str3

执行

Bash 教程-第十九、二十章

方法二

您还可以使用 += 运算符连接两个字符串并将结果存储在第一个字符串中

示例

#!/bin/bash
# 连接两个字符串

str1="Hello "
str2="World!"

str1+=$str2

echo $str3

执行

Bash 教程-第十九、二十章

19.5 将 {} 与变量一起使用

在某些情况下,将一个字符串与另一个字符串变量连接时可能会遇到问题,如下例所示。在这里,您需要在变量名周围使用花括号。

示例

#!/bin/bash

filename="backup"

backuptime=`date +%Y-%m-%d`

echo "$filename_$backuptime.sql"    ### 反例子, 这种写法无法实现目的

echo "${filename}_${backuptime}.sql"  ### 正确写法

执行

Bash 教程-第十九、二十章

19.6 检查文件是否存在

使用 -f 开关和 if 条件是来检查文件是否存在。如果文件存在则执行一组语句:

  • 检查文件是否存在:
  • #!/bin/bash

    if [ -f "$FILE" ]; then
    # 如果文件存在执行代码块
    fi
  • 检查文件是否不存在:
  • #!/bin/bash

    if [ ! -f "$FILE" ]; then
    # 如果文件不存在执行代码块
    fi

20. 其他

20.1 文件判断:

➤: -d 测试文件是否为目录类型
➤: -e 测试文件是否存在
➤: -f 判断是否为一般文件
➤: -r 测试当前用户是否有权限读取
➤: -w 测试当前用户是否有权限写入
➤: -x 测试当前用户是否有权限执行 

20.2 常用转义字符:

➥ 反斜杠(\):使反斜杠后面的一个变量变为单纯的字符串。
➥ 单引号(''):转义其中所有的变量为单纯的字符串。
➥ 双引号(""):保留其中的变量属性,不进行转义处理。
➥ 反引号('):把其中的命令执行后返回结果。

20.3 crontab时间参数:

⏱ 几分: 取值为 0~59 的整数
⏱ 几时: 取值为 0~23 的任意整数
⏱ 几日: 取值为 1~31 的任意整数
⏱ 几月: 取值为 1~12 的任意整数
⏱ 星期: 取值为 0~7 的任意整数,其中 0 与 7 均为星期日
⏱ 命令: 要执行的命令或程序脚本

20.4 Linux 系统中常见的目录名称以及相应内容:

⇥ /boot 开机所需文件— 内核、开机菜单以及所需配置文件等
⇥ /dev 以文件形式存放任何设备与接口
⇥ /etc 配置文件
⇥ /home 用户家目录
⇥ /bin 存放单用户模式下还可以操作的命令
⇥ /lib 开机时用到的函数库,以及/bin 与/sbin 下面的命令要调用的函数
⇥ /sbin 开机过程中需要的命令
⇥ /media 用于挂载设备文件的目录
⇥ /opt 放置第三方的软件
⇥ /root 系统管理员的家目录
⇥ /srv 一些网络服务的数据文件目录
⇥ /tmp 任何人均可使用的“共享”临时目录
⇥ /proc 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等
⇥ /usr/local 用户自行安装的软件
⇥ /usr/sbin Linux 系统开机时不会使用到的软件/命令/脚本
⇥ /usr/share 帮助与说明文件,也可放置共享文件
⇥ /var 主要存放经常变化的文件,如日志
⇥ /lost+found 当文件系统发生错误时,将一些丢失的文件片段存放在这里

20.5 useradd基本参数:

❖ -d 指定用户的家目录(默认为/home/username)
❖ -u 账户的到期时间,格式为 YYYY-MM-DD.
❖ -e 指定该用户的默认 UID
❖ -g 指定一个初始的用户基本组(必须已存在)
❖ -G 指定一个或多个扩展用户组
❖ -N 不创建与用户同名的基本用户组
❖ -s 指定该用户的默认 Shell 解释器




发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章