https://www.runoob.com/linux/linux-shell.html
echo $name
echo "$"
if [ "$1" = 'y' -a $2 -gt 0 ]; then
echo "yes"
fi
if [[ -z "$string" ]]; then
echo "String is empty"
elif [[ -n "$string" ]]; then
echo "String is not empty"
else
echo "This never happens"
fi
i=1
while [[ $i -lt 4 ]]; do
echo "Number: $i"
((i++))
done
for i in /etc/rc.*; do
echo $i
done
for ((i = 0 ; i < 100 ; i++)); do
echo $i
done
for i in {1..5}; do
echo "Welcome $i"
done
#数值比较
[[ 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 )) Less than
(( NUM <= NUM )) Less than or equal
(( NUM > NUM )) Greater than
(( NUM >= NUM )) Greater than or equa
#字符串比较
[[ -z STR ]] Empty string 空
[[ -n STR ]] Not empty string 非空
[[ STR == STR ]] Equal
[[ STR = STR ]] Equal (Same above)
[[ STR < STR ]] Less than (ASCII)
[[ STR > STR ]] Greater than (ASCII)
[[ STR != STR ]] Not Equal
[[ STR =~ STR ]] Regexp
#文件判断
[[ -e FILE ]] Exists
[[ -d FILE ]] Directory
[[ -f FILE ]] File
[[ -h FILE ]] Symlink
[[ -s FILE ]] Size is > 0 bytes
[[ -r FILE ]] Readable
[[ -w FILE ]] Writable
[[ -x FILE ]] Executable
[[ f1 -nt f2 ]] f1 newer than f2
[[ f1 -ot f2 ]] f2 older than f1
[[ f1 -ef f2 ]] Same files
#包含
A="helloworld"
B="low"
if[[ $A =~ $B ]]
then
echo"包含"
else
echo"不包含"
fi
#利用通配符
if[[ $A == *$B* ]]
then
echo"包含"
else
echo"不包含"
fi
https://blog.csdn.net/weixin_38787592/article/details/124623468
#语法
case $CPU in
"8")
echo "888"
;;
"8" | "9")
echo "或"
;;
[0-9])
echo "表达式"
;;
[0-9] | [A-Z])
echo "表达式 + 或者"
;;
*)
echo "other"
;;
esac
#字符串包含搜索
A="1 2 3 4 5" # 源字符串
B="1 2" # 搜索字符串
case $A in
*"$B"*)
echo "in str"
;;
*)
echo "not in"
;;
esac
https://blog.csdn.net/weixin_59792733/article/details/126637758
#方法1
数组名=(value0 value1 value2 ...)
#方法2
数组名=([0]=value1 [1]=value2 [2]=value3 ...)
#方法3
列表名="value1 value2 value3 value4 value5 ..."
数组名=($列表名)
#方法4
数组名[0]=value1
数组名[1]=value2
数组名[2]=value3
数组名[3]=value4
echo ${数组名[x]}
#显示全部数组
echo ${数组名[@]} 或者 echo ${数组名[*]}
#使用for遍历输出数组的每个元素值
for i in ${array[@]};
do echo $i;
done
if [[ -n $(docker ps -q -f "name=^myMySQL$") ]];then
echo "has install mysql"
else
echo "not install mysql"
fi
#检测网络字符串不为空
if [[ -n $(docker network ls -q -f "name=lnet0") ]];then
echo "has install mysql"
else
echo "not install mysql"
fi
#不存的网络创建
if [[ -z $(docker network ls -q -f "name=lnet0") ]];then
echo "docker network create lnet0"
docker network create lnet0
fi
(( )) 用于整数运算,效率很高,推荐使用。
let 用于整数运算,和 (()) 类似。
[$] 用于整数运算,不如 (()) 灵活。
expr 可用于整数运算,也可以处理字符串。比较麻烦,需要注意各种细节,不推荐使用。
bc #Linux下的一个计算器程序,可以处理整数和小数。Shell 本身只支持整数运算,想计算小数就得使用 bc 这个外部的计算器。
declare -i 将变量定义为整数,然后再进行数学运算时就不会被当做字符串了。功能有限,仅支持最基本的数学运算(加减乘除和取余),不支持逻辑运算、自增自减等,所以在实际开发中很少使用。
------------------------------------------------------------------------
((a=10+66) ((b=a-15)) ((c=a+b))
c=$((a+b)) 获取表达式结果
((a>7 && b==c)) 逻辑判断
echo $((a+10)) 输出结果
((a=3+5, b=a+10)) 对多个表达式同时进行计算
* 在 (( )) 中使用变量无需加上$前缀,(( )) 会自动解析变量名,这使得代码更加简洁
-----------------------
let命令:对整数进行数学运算
let 表达式 或 let "表达式" 或 let '表达式'
它们都等价于((表达式))
str="Hello World"
echo $str
通过命令的结果进行赋值
current_date=$(date +%Y-%m-%d)
echo $current_date # 输出当前日期
从文件中获取内容并赋值到变量:
file_content=$(cat file.txt)
echo "$file_content" # 输出文件file.txt的内容
计算表达式后赋值给变量:
sum=$((5+7))
echo $sum # 输出 12
exit
```####
```