编辑
2024-06-12
TechNotes
00

目录

shell简单技巧
查找当前系统中存在的shell
查看默认Shell版本
切换Shell版本
shell 基本
基本示例及讲解
Shell 比较符
Shell 状态码
Shell 条件语句
Shell for循环
示例
随机数小游戏
Shell 中,() 和 [] 用途
1. [](方括号)
2. (( ))(双圆括号)
3. [[ ]](双方括号)
总结

shell简单技巧

查找当前系统中存在的shell

  • 在/etc/shells 文件下查看
bash
gyc@GYC:~/shell$ cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/bash /usr/bin/bash /bin/rbash /usr/bin/rbash /usr/bin/sh /bin/dash /usr/bin/dash /usr/bin/tmux /usr/bin/screen

查看默认Shell版本

bash
gyc@GYC:~/shell$ echo $SHELL /bin/bash gyc@GYC:~/shell$ echo $0 -bash
  • echo $SHELL是环境变量
  • echo $0 是当前执行的脚本名称

切换Shell版本

bash
gyc@GYC:~/shell$ /bin/sh $ ls $ pwd /home/gyc/shell $ exit
  • 使用exit退出

shell 基本

基本示例及讲解

bash
#!/bin/bash # 指定使用 Bash 作为解释器 # 输出 "Hello Shell" 字符串 echo "Hello Shell" # 显示当前用户的用户名 whoami

Shell 比较符

image.png

Shell 状态码

image.png

Shell 条件语句

image.png

Shell for循环

bash
#!/bin/bash # 遍历从 1 到 5 的数字 for num in {1..5}; do echo "数字: $num" done

示例

bash
#!/bin/bash # 遍历从 1 到 100 的数字 for ((i=1; i<=100; i++)); do # 检查是否是偶数 if (( i % 2 == 0 )); then echo "$i" # 打印偶数 fi done
#!/bin/bash # 使用 seq 命令生成 2 到 100 之间的偶数,步长为 2 for i in $(seq 2 2 100); do echo "$i" done

随机数小游戏

bash
#!/bin/bash # 指定使用 Bash 作为解释器 # 生成一个 1 到 10 之间的随机数 ran_number=$(shuf -i 1-10 -n 1) echo $ran_number # 输出生成的随机数(可选,调试用) # 无限循环 while true do echo "请输入一个1-10之间的数字" read guess # 读取用户输入的猜测 # 判断用户输入是否正确 if [[ $guess -eq $ran_number ]]; then echo "猜对了, 是否继续?(y/n)" read choice # 读取用户是否继续的选择 # 检查用户输入的选择 if [[ $choice == "y" ]] || [[ $choice == "Y" ]]; then # 如果选择继续,生成新的随机数并重新开始循环 ran_number=$(shuf -i 1-10 -n 1) continue else break # 退出循环 fi elif [[ $guess -lt $ran_number ]]; then echo "猜小了" # 猜的数字小于随机数 else echo "猜大了" # 猜的数字大于随机数 fi done

Shell 中,()[] 用途

1. [](方括号)

  • 用途:用于条件测试,通常用于 test 命令或 [ 命令。
  • 语法
    • 用于比较字符串、数字、文件测试等。
    • 示例:
      bash
      # 字符串比较 if [ "$var" = "value" ]; then echo "相等" fi # 数字比较 if [ $num -lt 10 ]; then echo "小于10" fi # 文件测试 if [ -f "file.txt" ]; then echo "文件存在" fi
  • 注意:在使用 [] 时,= 用于字符串比较,-lt-gt-eq 等用于数字比较。

2. (( ))(双圆括号)

  • 用途:用于数学运算和数值比较。
  • 语法
    • 可以直接使用算术表达式,支持更丰富的运算符。
    • 示例:
      bash
      # 数学运算 (( sum = a + b )) # 数值比较 if (( num < 10 )); then echo "小于10" fi
  • 特点:在 (( )) 中,不需要使用 $ 来引用变量。可以直接使用变量名。

3. [[ ]](双方括号)

  • 用途:更强大的条件测试结构,提供了扩展的功能。
  • 语法
    • 支持模式匹配、逻辑运算等。
    • 示例:
      bash
      if [[ $var == "value" ]]; then echo "相等" fi if [[ $num -lt 10 && $num -gt 0 ]]; then echo "在 1 到 9 之间" fi
  • 特点:在 [[ ]] 中,== 用于字符串比较,&&|| 用于逻辑与或运算,支持更复杂的条件。

总结

  • 使用 [] 进行基本的条件测试。
  • 使用 (( )) 进行数学运算和数值比较。
  • 使用 [[ ]] 进行更复杂的条件测试,包括字符串比较和逻辑运算。

根据需要选择合适的结构,可以提高脚本的可读性和可维护性。如果有更多问题或需要示例,随时问我!

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:GYC

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!