From 78b652fec46fbe9fcf568263e5ee28dadeac1cb4 Mon Sep 17 00:00:00 2001 From: jaywcjlove Date: Thu, 17 Nov 2022 04:30:47 +0000 Subject: [PATCH] =?UTF-8?q?doc:=20Update=20bash.md=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E9=83=A8=E5=88=86=E7=BF=BB=E8=AF=91=E9=94=99=E8=AF=AF=20(#112)?= =?UTF-8?q?=2074afc524638a9d8da57e55eb5cdf7144f3cbfb4f?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/bash.html | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/bash.html b/docs/bash.html index c903c272..1510efe3 100644 --- a/docs/bash.html +++ b/docs/bash.html @@ -42,7 +42,7 @@

这是开始使用 linux bash shell 脚本的快速参考备忘单。

入门

hello.sh

#!/bin/bash
 VAR="world"
@@ -56,17 +56,17 @@
 echo ${NAME}    # => John (变量)
 echo $NAME      # => John (变量)
 echo "$NAME"    # => John (变量)
-echo '$NAME'    # => $NAME (确切的字符串)
+echo '$NAME'    # => $NAME (字符串原样输出)
 echo "${NAME}!" # => John! (变量)
-NAME = "John"   # => Error (关于空格)
+NAME = "John"   # => Error (注意不能有空格)
 

注释

# 这是一个内联 Bash 注释。
 
 : '
 这是一个
-非常整洁的评论
-在 bash
+非常整洁的
+bash 注释
 '
 

多行注释使用 :' 打开和 ' 关闭

@@ -121,7 +121,7 @@ -
表示描述
$1$9参数 1 ... 9
$0脚本本身的名称
$1第一个论点
${10}位置参数 10
$#参数数量
$$shell 的进程 id
$*所有论据
$@所有参数,从第一个开始
$-当前选项
$_上一个命令的最后一个参数
+
表示描述
$1$9参数 1 ... 9
$0脚本本身的名称
$1第一个参数
${10}位置参数 10
$#参数数量
$$shell 的进程 id
$*所有参数
$@所有参数,从第一个开始
$-当前选项
$_上一个命令的最后一个参数

见:特殊参数

函数

get_name() {
@@ -405,8 +405,8 @@
 

操作

-
Fruits=("${Fruits[@]}" "Watermelon")         # 推
-Fruits+=('Watermelon')                       # 也推
+
Fruits=("${Fruits[@]}" "Watermelon")         # 添加
+Fruits+=('Watermelon')                       # 也是添加
 Fruits=( ${Fruits[@]/Ap*/} )                 # 通过正则表达式匹配删除
 unset Fruits[2]                              # 删除一项
 Fruits=("${Fruits[@]}")                      # 复制
@@ -500,7 +500,7 @@
 
 
 
-
条件描述
[[ NUM -eq NUM ]]等于 Equal
[[ NUM -ne NUM ]]不等于 Not equal
[[ NUM -lt NUM ]]少于 Less than
[[ NUM -le NUM ]]小于或等于 Less than or equal
[[ NUM -gt NUM ]]大于 Greater than
[[ NUM -ge NUM ]]大于或等于 Greater than or equal
(( NUM < NUM ))少于
(( NUM <= NUM ))小于或等于
(( NUM > NUM ))比...更棒
(( NUM >= NUM ))大于或等于
+
条件描述
[[ NUM -eq NUM ]]等于 Equal
[[ NUM -ne NUM ]]不等于 Not equal
[[ NUM -lt NUM ]]小于 Less than
[[ NUM -le NUM ]]小于等于 Less than or equal
[[ NUM -gt NUM ]]大于 Greater than
[[ NUM -ge NUM ]]大于等于 Greater than or equal
(( NUM < NUM ))小于
(( NUM <= NUM ))小于或等于
(( NUM > NUM ))比...更大
(( NUM >= NUM ))大于等于

字符串条件

@@ -543,7 +543,7 @@ -
条件描述
[[ -z STR ]]空字符串
[[ -n STR ]]空字符串
[[ STR == STR ]]平等的
[[ STR = STR ]]相等(同上)
[[ STR < STR ]]小于 (ASCII)
[[ STR > STR ]]大于 (ASCII)
[[ STR != STR ]]不相等
[[ STR =~ STR ]]正则表达式
+
条件描述
[[ -z STR ]]空字符串
[[ -n STR ]]空字符串
[[ STR == STR ]]相等
[[ STR = STR ]]相等(同上)
[[ STR < STR ]]小于 (ASCII)
[[ STR > STR ]]大于 (ASCII)
[[ STR != STR ]]不相等
[[ STR =~ STR ]]正则表达式

例子

字符串

@@ -570,7 +570,7 @@ echo ${BASH_REMATCH[1]} fi
-

更小

+

小于

if (( $a < $b )); then
    echo "$a is smaller than $b"
 fi
@@ -635,7 +635,7 @@
 
 
 
-
条件描述
[[ -e FILE ]]存在
[[ -d FILE ]]目录
[[ -f FILE ]]文件
[[ -h FILE ]]符号链接
[[ -s FILE ]]大小 > 0 字节
[[ -r FILE ]]可读
[[ -w FILE ]]可写
[[ -x FILE ]]可执行文件
[[ f1 -nt f2 ]]f1 比 f2 新
[[ f1 -ot f2 ]]f2 早于 f1
[[ f1 -ef f2 ]]相同的文件
+
条件描述
[[ -e FILE ]]存在
[[ -d FILE ]]目录
[[ -f FILE ]]文件
[[ -h FILE ]]符号链接
[[ -s FILE ]]大小 > 0 字节
[[ -r FILE ]]可读
[[ -w FILE ]]可写
[[ -x FILE ]]可执行文件
[[ f1 -nt f2 ]]f1 比 f2 新
[[ f1 -ot f2 ]]f2 比 f1 新
[[ f1 -ef f2 ]]相同的文件

更多条件

@@ -688,7 +688,7 @@ echo "Welcome $i" done -

具有步长

+

步长

for i in {5..50..5}; do
     echo "Welcome $i"
 done
@@ -700,7 +700,7 @@
     ((i++))
 done
 
-

自动递增

+

自动递减

i=3
 while [[ $i -gt 0 ]]; do
     echo "Number: $i"
@@ -732,17 +732,17 @@
     ((count++))
 done
 
-

永远

+

死循环

while true; do
     # here is some code.
 done
 
-

永远(简写)

+

死循环(简写)

while :; do
     # here is some code.
 done
 
-

正在读取行

+

读取文件的每一行

cat file.txt | while read line; do
     echo $line
 done
@@ -768,7 +768,7 @@
 
result="$(myfunc)"
 
-

正在引发错误

+

抛出错误

myfunc() {
     return 1
 }
@@ -935,7 +935,7 @@
 
 
代码描述
!!:n仅扩展最近命令中的第 n 个标记(命令为 0;第一个参数为 1
!^从最近的命令展开第一个参数
!$从最近的命令中展开最后一个标记
!!:n-m从最近的命令扩展令牌范围
!!:n-$从最近的命令中将第 n 个标记展开到最后

!! 可以替换为任何有效的扩展,即 !cat!-2!42 等。

-

各种各样的

+

杂项

数值计算

$((a + 200))      # Add 200 to $a