⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 max2.sh

📁 BASH Shell 编程 经典教程 《高级SHELL脚本编程》中文版
💻 SH
字号:
#!/bin/bash# max2.sh: 取两个大整数中的最大值. #  这是前一个例子"max.sh"的修改版, #+ 这个版本可以比较两个大整数. EQUAL=0             # 如果两个值相等, 那就返回这个值. E_PARAM_ERR=-99999  # 没有足够多的参数传递给函数. #           ^^^^^^    任意超出范围的参数都可以传递进来. max2 ()             # "返回"两个整数中最大的那个. {if [ -z "$2" ]then  echo $E_PARAM_ERR  returnfiif [ "$1" -eq "$2" ]then  echo $EQUAL  returnelse  if [ "$1" -gt "$2" ]  then    retval=$1  else    retval=$2  fifiecho $retval        # 输出(到stdout), 而没有用返回值.                     # 为什么? }return_val=$(max2 33001 33997)#            ^^^^             函数名#                 ^^^^^ ^^^^^ 传递进来的参数#  这其实是命令替换的一种形式: #+ 可以把函数看作为一个命令, #+ 然后把函数的stdout赋值给变量"return_val." # ========================= OUTPUT ========================if [ "$return_val" -eq "$E_PARAM_ERR" ]  then  echo "Error in parameters passed to comparison function!"elif [ "$return_val" -eq "$EQUAL" ]  then    echo "The two numbers are equal."else    echo "The larger of the two numbers is $return_val."fi# =========================================================  exit 0#  练习:#  -----#  1) 找到一种更优雅的方法, #+    来测试传递给函数的参数. #  2) 简化"输出"段的if/then结构. #  3) 重写这个脚本, 使其能够从命令行参数中获得输入. 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -