shell编程系列4--有类型变量:字符串、只读类型、整数、数组

shell编程系列4--有类型变量:字符串、只读类型、整数、数组

有类型变量总结:

declare命令和typeset命令两者等价

declare、typeset命令都是用来定义变量类型的

declare命令参数总结

1.declare -r 将变量设置为只读类型
declare -r var="hello"
var="world" 

# 变量默认可以修改
[[email protected] shell]# var2="hello world"
[[email protected] shell]# var2="hello python"
[[email protected] shell]# echo $var2
hello python

# 声明为只读变量,就不可修改
[[email protected] shell]# declare -r var2
[[email protected] shell]# var2="hello java"
-bash: var2: readonly variable

2. declare -i 将变量设为整数
# 默认把变量当做字符处理
[[email protected] shell]# num1=10
[[email protected] shell]# num2=$num1+20
[[email protected] shell]# echo $num2
10+20

# 声明为整数
[[email protected] shell]# declare -i num3
[[email protected] shell]# num3=$num1+90
[[email protected] shell]# echo $num3
100

3.declare -a 将变量定义为数组

# 定义数组
[[email protected] shell]# declare -a array
[[email protected] shell]# array=("jones" "make" "kobe" "jordan")

# 列出数组所有元素
[[email protected] shell]# echo ${array[@]}
jones make kobe jordan
[[email protected] shell]# echo ${array[1]}
make
[[email protected] shell]# echo ${array[0]}
jones
[[email protected] shell]# echo ${array[2]}
kobe

# 数组长度
[[email protected] shell]# echo ${#array[@]}
4

# 输出数组中元素长度
[[email protected] shell]# echo ${#array[0]}
5
[[email protected] shell]# echo ${#array[1]}
4

-f 显示此脚本前定义过的所有函数和内容
-F 进显示脚本前定义过的函数名

数组常用的方法(仅供参考,实际生产用的少)

array=("jones" "mike" "kobe" "jordan")
输出数组内容:
    echo ${array[@]}    输出全部内容
    echo ${array[1]}    输出下标索引为1的内容

获取数组长度:
    echo ${#array}        数组内元素个数
    echo ${#array[2]}    数组内下标索引为2的元素长度

给数组某个下标赋值:
    array[0]="lily"        给数组下标索引为1的元素赋值为lily
    array[20]="hanmeimei"    在数组尾部添加一个新元素

删除元素:
    unset array[2]        清空元素
    unset array        清空整个数组

分片访问:
    ${array[@]:1:4}        显示数组下标索引从1开始到3的3个元素

内容替换:
    ${array[@]/an/AN}    将数组中所有元素包含an的子串替换为AN

数组遍历:
    for v in ${array[@]}
    do
        echo $v
    done

4.declare -x 将变量声明为环境变量

[[email protected] shell]# num5=30
[[email protected] shell]# echo $num5
30
[[email protected] shell]# vim test1.sh
[[email protected] shell]# cat test1.sh
#!/bin/bash
#

echo $num5

# 在脚本中直接使用shell环境中定义的变量是无法引用的
[[email protected] shell]# sh test1.sh 

# 当使用declare -x 变量后,就可以直接在脚本中引用了
[[email protected] shell]# declare -x num5
[[email protected] shell]# sh test1.sh
30

declare +r 取消一个变量

原文地址:https://www.cnblogs.com/reblue520/p/10919004.html

时间: 2024-10-28 10:13:38

shell编程系列4--有类型变量:字符串、只读类型、整数、数组的相关文章

shell编程系列2--字符串的处理

shell编程系列2--字符串的处理 字符串的处理 1.计算字符串的长度 方法1 ${#string} 方法2 expr length "$string" (如果string中间有空格,必须加双引号) 例子: # 通过${#string}获取字符串长度 [[email protected] shell]# var1="hello world" [[email protected] shell]# len=${#var1} [[email protected] she

剑指offer系列39:把字符串转换成整数

主要代码其实很少,主要是对各种情况的判断.在做题的时候一定要考虑到各种情况的非法输入. 1.前面的空格需要跳过 2.判断数字的正负号并记录 3.如果有非法输入例如字母和其他非数字和正负号的字符,退出返回0 4.返回的是一个数字,所以一定要考虑数字的边界问题 5.对于各种情况考虑到之后最好再加一个无条件的输出语句,防止没有考虑到的情况发生 1 class Solution { 2 public: 3 int StrToInt(string str) { 4 if (str.empty()) 5 r

Linux Shell编程中的特殊符号

本文是shell编程系列的第四篇,集中介绍了bash编程可能涉及到的特殊符号的使用.学会本文内容可以帮助你写出天书一样的bash脚本,并且顺便解决以下问题: 输入输出重定向是什么原理? exec 3<> /tmp/filename是什么鬼? 你玩过bash的关联数组吗? 如何不用if判断变量是否被定义? 脚本中字符串替换和删除操作不用sed怎么做? " "和' '有什么不同? 正则表达式和bash通配符是一回事么? 这里需要额外注意的是,相同的符号出现在不同的上下文中可能会

shell编程学习1

1.shell是操作系统的终端命令行 (1)shell可以理解为软件系统提供给用户操作的命令行界面,可以说它是人机交互的一种方式.    (2)我们可以使用shell和操作系统.uboot等软件系统进行交互.具体来说就是我们通过shell给软件系统输入命令然后回车执行,执行完成后又会回到shell命令行可以再次输入         命令执行.    (3)上述的操作方式一般情况下工作很好,但是有缺陷.譬如我们要在linux下创建一个文件a.c,可以touch a.c 但是如果我现在是用在linu

shell编程:定义简单标准命令集

shell是用户操作接口的意思,操作系统运行起来后都会给用户提供一个操作界面,这个界面就叫shell,用户可以通过shell来调用操作系统内部的复杂实现,而shell编程就是在shell层次上进行编程,如Linux中的脚本编程. shenll运行原理:由消息接收.解析.执行构成的死循环. 命令行shell:该死循环包含3个模块(命令接收.命令解析.命令执行),命令行有一个标准命令集,用户输入的命令若不是标准命令,则提示用户这不是一个合法命令行,然后重新回到命令行让用户输入下一个命令. 常见的sh

(七)shell编程学习

1.shell程序练习:创建一个dir文件夹,在dir文件夹里再创建一个cd.c文件 首先vim hello.sh 2.shell中的变量定义和引用 (1)变量定义和初始化.shell是弱类型语言(语言中的变量如果有明确的类型则属于强类型语言:变量没有明确类型就是弱类型语言),和C语言不同.在shell编程中定义变量不需要制定类型,也没有类型这个概念.(2)变量定义时可以初始化,使用=进行初始化赋值.在shell中赋值的=两边是不能有空格的.注意:shell对语法非常在意,非常严格.很多地方空格

Shell编程关于函数要注意的几点

今天上午一个朋友突然QQ问到,shell编程中的函数为什么return只能是整数,怎么样才能将函数的执行结果返回并保存至某个变量中.其实这个问题很好解决---只需要认真了解下shell函数即可. shell编程中关于函数需要知道的几点 一.无论是在函数内,还是在函数外,$0的值都是该脚本本身.     [[email protected] ~]# cat test.sh     #!/bin/bash          echo $0          function testFunc(){

shell编程中的字符串的截取方法

shell编程中的字符串的截取方法: 一.Gnu Linux shell 截取字符变量的前8位,有方法如下: 1.expr substr "$a" 1 8 2.echo $a|awk '{print substr(,1,8)}' 3.echo $a|cut -c1-8 4.echo $ 5.expr $a : '\(.\\).*' 6.echo $a|dd bs=1 count=8 2>/dev/null 二.按指定的字符串截取 1.第一种方法: ${varible##*stri

Linux Shell编程之五字符串的处理

shell编程之字符串处理 在 shell 中,由于是一种弱类型的语言,在没有事先申明变量类型的情况下,所有的变量都是字符串.所以对字符串的处理就显得相当重要了. 下面介绍常见的对字符串处理的操作. 一.字符串切片 ${string_var:offest:length},类似于数组元素的提取. # 这里的string_var是一个变量,offest 是字符串的开始偏移量,length是切去字符串的长度 var=dhcpd:x:177:177:DHCP server:/:/sbin/nologin