`

shell 整型变量定义

阅读更多
4.8 定义整型变量命令declare -i

用带选项-i 的declare 命令,可以使变量具有整数(integer)属性。Bash 本质上只有字符型变量,但通常也可以说:定义整型变量。

例如,希望得到45+20 的整数运算结果:


    $ M=45+20 
    $ echo $M 
    45+20

执行M=45+20 之后,M 的值为字符串45+20 , 而不是希望得到的65 。执行M=$((45+20),或let M=45+20 才能得到65。如果事先声明变量是整型数,就不必使用$((…))或者let。见下例:


    $ declare -i K 
    $ K=45+20 
    $ echo $K 
    65

再看一个例子。C 被声明为整型变量,所以C 的值为15+30=45;D 没有被声明为整型,所以D 的值是字符串15+30,而不是期望得到的45:


    $ A=15 B=30
    $ declare -i C=$A+$B 
    $ D=$A+$B 
    $ echo C=$C, D=$D 
    C=45, D=15+30

如果整型数被赋值为字符或不带空格的字符串时,系统不会报错,并且整型变量实际被赋值为0:

    $ declare -i M # 声明整型变量M 
    $ M="web" # 变量M 被赋值为无空格的字符串 
    $ echo $M 
    0 # 显示M 的值为0

整型数被赋值为带空格的字符串时,系统将报错:

    $M="web site" # 变量M 被赋值为带空格的字符串,出错 
    bash: web site: syntax error in expression (error token is "site")

前面提到的数都是十进制数,Bash 支持其他进制的数,支持的范围是从二进制到六十四进制。非十进制数赋值的格式为:


    变量=基数#数值

基数的取值范围为2 到64,常用的有二进制、八进制、十六进制等。例如:

    $ declare -i x 
    $ x=2#110 # 二进制的110 赋给x 
    $ echo $x 
    6 # 二进制的110 就是十进制的6 
    $ x=8#16 # 八进制的16 赋给x 
    $ echo $x 
    14 # 八进制的16 就是十进制的14 
    $ x=16#2A # 十六进制的2A 赋给x 
    $ echo $x 
    4 2 # 十六进制的2A 就是十进制的42

以0 开头的数表示八进制数,以0x 开头的数表示十六进制数,这一点与C 语言一致。例如:


    $ x=025 # 八进制的25 赋给x 
    $ echo $x 
    21 # 八进制的25 就是十进制的21 
    $ x=0x25 # 十六进制的25 赋给x 
    $ echo $x 
    37 # 十六制的25 就是十进制的37

赋值时,某一位数大于基数的话,赋值将失败。例如:


    $ x=029 # 以0 开头的为八进制数,数字只能取0 到7,9 超出基数,赋值失败 
    bash: 029: value too great for base (error token is "029") 
    $ x=16#2G # 十六进制数字只能取0 到9、A 到F,G 超出基数,赋值失败 
    bash: 16#2G: value too great for base (error token is "16#2G")
分享到:
评论

相关推荐

    shell算数运算

    可以对已定义的整型变量执行算术运算(如果变量未被定义为整型变量, 内置的let命令也允许算术操作。见本节let命令部分)。如果给整型变量赋一个浮点数值,则bash将报告语法错误。数字可以用不同基数的数字表示,如 二...

    详解shell 变量

    在Bash Shell中,变量的定义无需指定类型,它们默认被当作字符串处理,这意味着无论赋予变量的是整数、浮点数还是其他类型,都会被当作字符串存储。这与C/C++等语言不同,那些语言有明确的数据类型如整型、浮点型、...

    Shell教程-高级变量.docx

    这些命令可以用来声明只读变量(`-r`),整型变量(`-i`),数组(`-a`),关联数组(`-A`),显示函数名和内容(`-f`),仅显示函数名(`-F`),环境变量(`-x`),将变量转换为小写(`-l`)或大写(`-u`)。...

    shell变量与常用符号2(视频)

    4. 变量类型:Shell没有严格的数据类型,但可以通过`typeset`或`declare`命令指定变量为整型、浮点型或数组。 三、特殊符号 1. `$`:引用变量,如`echo $var`。 2. `#`:用于注释,从符号后的字符开始到行尾。 3. `...

    7 shell运算符1

    例如,你可以使用`-i`选项声明一个整型变量,`-a`选项声明一个数组,`-r`选项声明一个只读变量,而如果不带任何参数,`declare`会显示所有已定义的Shell变量及其值。 1. **整型变量(-i)**:当你使用`-i`选项声明一...

    linux shell 简明教程.pdf

    - **算术运算**: 使用`$((expression))`进行整型变量的数学计算。 - 示例: `let result=10+5` 或者 `result=$((10+5))` - **算术扩展**: 在表达式中使用变量时,可以直接在括号内使用变量名,而无需使用`$`。 **6....

    强力推荐Shell 脚本教程 ppt

    ##### 整型变量的算术运算和算术扩展 - **算术运算**:可以使用内置命令`expr`或者`let`来进行算术运算。 - **示例**: ```bash a=5 b=3 c=$((a + b)) echo $c # 输出:8 ``` - **算术扩展**:使用`$(...

    操作系统中 shell编程

    1. **变量**: Shell脚本中可以定义各种类型的变量,如字符串变量、整型变量等。 2. **控制结构**: 包括条件语句(if-else)、循环(for、while)等。 3. **函数**: 可以定义函数来封装一组相关的命令或操作。 4. **输入...

    详解shell 函数定义与调用

    本文将深入讲解如何定义和调用Shell函数,以及处理函数中的参数传递和返回值。 1. **Shell函数定义格式**: Shell函数的基本定义格式如下: ```shell [function] function_name() { function_body [return int...

    shell 字符串操作

    varprefix@}**: 通过变量名前缀字符搜索已定义的变量。 - 示例: ```bash var1=11 var2=12 var3=13 echo "${!v@}" # 输出: var1 var2 var3 ``` #### 三、字符串操作 Shell还提供了一系列内置的操作来处理...

    Linux_Shell实例精解.rar

    4. **变量和引用**:学习如何声明和使用变量,理解字符串变量、整型变量和数组变量的特性,以及转义字符和引用($、`、\)的用法。 5. **流程控制**:掌握条件语句(`if...then...fi`、`case`)和循环结构(`for`、...

    shell图形化总结

    Shell图形化总结不仅涉及到了命令组、重定向、管道、进程替换、信号捕获、条件测试、函数定义和脚本调试等关键知识点,还涵盖了如何创建临时文件、处理文本、条件判断、循环结构、整型比较、字符串比较以及脚本中...

    适用于stm32的shell代码和例程

    3,新建全局变量 struct shell_input serial_shell ; 并初始化 SHELL_INPUT_INIT(&serial;_shell ,usart_puts);初始化输入缓存和输出交互; 4,串口接收到一整包函数后,调用 shell_input(&serial;_shell , packet ,...

    shell学习心得 下载

    - `export`用于定义环境变量,`NAME=51Testing`定义局部变量,`declare`用于声明变量类型,如`declare -i NUM`定义整型变量。 - `vi`是文本编辑器,有命令模式和插入模式,`/`用于查找,`:w`, `:wq`, `:q`, `:q!`...

    shell脚本初级入门

    declare命令用于定义变量的类型,例如:declare -i test=1+2,这将定义一个整型变量test,并赋值为1+2。 四、read命令 read命令用于从标准输入读取变量的值,例如:read fileuser,这将读取fileuser的值。然后可以...

    linux和unixshell编程指南.7z

    1. 变量:Shell允许定义和使用变量,包括字符串变量、整型变量和数组变量。变量赋值不需声明类型,直接使用等号(=)进行赋值。 2. 输入/输出重定向:通过>`>`和`>>`操作符,可以将命令输出重定向到文件,实现数据...

    Linux Shell Scripting Tutorial

    - 通过赋值或利用`declare -i`声明整型变量。 - **常量定义** - 定义不变的值,作为程序中的固定参考。 - **变量存在检查** - 判断变量是否已定义,确保程序稳健。 - **自定义 Bash 环境** - 修改配置文件如`....

    高级shell脚本编程指南

    数据类型方面,shell并不区分整型、浮点型,所有数值都视为字符串处理,但可以进行基本的算术运算。 2. **流程控制**:shell脚本中的流程控制包括条件语句(if-else)和循环结构(for、while)。例如,if语句用于...

    shell入门学习笔记

    2.2.2 变量定义、取消定义和赋值: - 本地变量:直接定义,如`myvar=value`;取消定义:`unset myvar`。 - 环境变量:`export myvar=value`或`declare -x myvar=value`。 2.2.3 数据类型: Shell不需要在定义变量时...

    shell bash 手册

    可以使用`declare`或`typeset`命令来声明变量的类型,例如:`declare -i var=10`声明一个整型变量。 ### 四、条件测试 #### 1. Test结构 `test`命令用于进行各种比较操作,例如:`[ "$a" = "$b" ]`用于测试两个...

Global site tag (gtag.js) - Google Analytics