[*]
[*]Bash 脚本可用于自动化任务,您会发现它们非常适合构建简单的命令行应用程序。 Bash shell 解释 Bash 脚本,因此您无需安装任何依赖项即可编写和运行它们。 Bash 脚本也是可移植的,因为大多数基于 Unix 的操作系统都使用相同的 shell 解释器。
[*]每个开发人员都必须具备 Bash 脚本知识,尤其是在您使用基于 Unix 的系统时。
Bash 中的变量
[*]Bash 变量区分大小写。 要声明变量,请使用等号 (=) 左边是名字,右边是值:
STATE=Washington[*]
[*]此声明分配给的值 状态 是一个词。 如果您的值中需要空格,请在其周围使用引号:
STATE="North Arizona"[*]
[*]您需要使用美元符号 ($) 在其他变量或语句中引用变量的前缀:
STATE=Washington[*]LOCATION="My Location is $STATE"[*]
在 Bash 中打印值
[*]有几种方法可以在 Bash 中打印变量。 您可以使用 回声 基本输出或 C 风格的命令 打印 字符串格式化命令。
STATE=Washington[*]LOCATION="My Location is $STATE"[*]echo $LOCATION[*]
[*]声明后 状态 变量,这个脚本定义 地点 通过引用状态。 如果 then 使用 echo 打印 LOCATION 变量的最终值。
[*] 这 打印 关键字允许您使用格式化动词来输出数据。 字符串格式化动词类似于 C 和 Go 中的动词,但动词有限。
动词 | 功能性 |
---|---|
%C | 打印单个字符 |
%o | 打印八进制 |
%s | 打印字符串,独立于大小写 |
%X | 打印小写十六进制 |
%X | 打印大写十六进制 |
%d | 打印整数 |
%e | 以小写形式打印科学概念浮点数 |
%E | 以大写形式打印科学概念浮点数 |
%F | 打印浮点数 |
%% | 打印一个百分比符号。 |
[*]这是一个使用动词的例子 打印 关键词。
STATE=Lagos[*]printf "My Location is %s" $STATE[*]
[*]这 打印 函数将替代 状态 位置可变 %s 动词,输出将是“我的位置是拉各斯”。
Bash 中的评论
[*]您可以在 Bash 中使用哈希或磅 (#) 象征。 shell 会自动忽略注释。
#!/bin/bash[*]# STATE=Washington[*]# LOCATION="My Location is $STATE"[*]
[*]没有多行注释。 大多数 IDE 和文本编辑器允许您使用 Ctrl/Command + 正斜杠 (/) 快捷方式进行注释。 您应该能够使用快捷方式创建多个单行注释。
在 Bash 中接收用户输入
[*]像许多其他编程语言一样,您可以在 Bash 中接收用户输入,以使您的程序/脚本更具交互性。 您可以使用 读 命令来请求用户的输入。
read response[*]
[*]在这种情况下, 回复 变量将保存用户在交付时的输入。
echo "What do you want ?: "[*]read response[*]echo $response[*]
[*]在上面的示例中,用户输入请求将位于新行上。
[*] 您可以添加 -n 标志 回声 print 语句保留用户输入输入的行。
echo -n "What do you want."[*]read response[*]echo $response[*]
在 Bash 中声明数组
[*]Bash 中的数组就像大多数语言一样。 您可以通过在括号中指定元素来在 Bash 中声明一个数组变量。
Countries=('USA' 'Russia' 'Ukraine', "England", "Taiwan", "China")[*]
[*]通过引用变量名访问数组将获取第一个元素。 您可以使用星号作为索引来访问整个数组。
echo ${Countries[*]}[*]
[*]您还可以指定数组的索引来访问特定元素。 数组的索引从零开始。
echo "${Countries[4]}"[*]
Bash 中的条件语句
[*]Bash 为程序中的决策提供条件。
[*]这是 Bash 中 if-else 语句的剖析。 您必须使用分号来指定条件的结束。
if [[ condition ]]; then[*]echo statement1[*]elif [[condition ]]; then[*]echo statement2[*]else [[condition ]]; then[*]echo statement3[*]fi[*]
[*]你必须结束每一个 如果 与声明 菲 关键词。
if [ 1 == 2 ]; then[*]echo one [*]elif [ 2 == 3 ]; then #else-if[*]echo two[*]else [ 4 > 3 ]; [*]echo "correct, 3"[*]fi[*]
[*]您可以在 Bash 程序中使用 case 语句,使用 案子 关键词。 您必须在语句之前指定模式,后跟括号。
CITY=Lagos[*]case $CITY in[*] "Washington") # pattern [*]echo "United States of America" # statement[*] ;; # end of a case[*] "Lagos" | "Abuja")[*]echo "Nigeria"[*] ;;[*] "Johannesburg" | "Cape Town")[*]echo "South Africa"[*] ;;[*] *) # default pattern[*]echo "Antarctica" # default statement[*] ;;[*]esac # end of the case statement[*]
[*]您可以使用星号定义默认情况 签名作为模式。 案例陈述必须以 经社理事会
关键词。
[*]Bash 中的循环
[*]根据您的需要,您可以使用 while 循环、范围 for 循环或 C 样式的 for 循环进行重复操作。 这是 C 风格的 for 循环的示例。 For 循环必须以 完毕 关键字,并且您必须以分号结束 for 语句,后跟 做
for ((a = 0 ; a < 10 ; a+2)); do[*]echo $a[*]done[*]
[*]关键词。 对于处理文件和许多其他操作,for 循环的范围很方便。 您需要使用 在
for i in {1..7}; do[*]echo $1[*]done[*]
[*]范围为 for 循环的关键字。 这是一个简单的无限循环来演示 Bash 尽管
name=1[*]while [ 1 -le 5 ] # while 1 < 5[*]do[*]echo $name[*]done[*]
[*]循环在行动。 这 – 这
在条件语句中是小于的二元运算符。
[*]Bash 中的函数
print_working_directory() {[*]echo $PWD #calling the PWD command from the script[*]}[*]echo "You are in $(print_working_directory)"[*]
[*]在 Bash 中声明函数不需要关键字。 您可以使用名称声明函数,然后在函数体之前加上括号。 函数可以在 Bash 中返回变量。 您所需要的只是 返回
print_working_directory() {[*]return $PWD[*]}[*]
[*]关键词。 这 打印工作目录
函数返回文件的工作目录。
[*]您可以用其他语言编写 Shell 脚本
[*]Bash 并不是您可以用来与操作系统的 shell 交互或构建命令行应用程序的唯一语言。 您可以使用许多其他语言,例如 Go、Python、Ruby 和 Rust。
许多操作系统都预装了 Python3,Python 是一种流行的语言。 如果您需要比 Bash 脚本提供的更多功能,请考虑使用 Python。
[*]