linux中declare的详细解释及例子

linux中declare的详细解释及例子,第1张

declare

核心语法:

-i 声明为整数

-a 声明未数组

-f 声明未函数

-r 声明未只读

以上是较为常用的,当然其他的可以通过 man declare 来获得

在默认情况下我们对于对象的声明字符串,若是希望得到数字整形类型的变量,那么就需要涉及到这次将的declare

我们看个情况:

price=10

num=3

echo $price*num

----------

10*3

若是申明为declare的话,那么就如下所示

inter12@inter12:/tmp$ declare -i price=10

inter12@inter12:/tmp$ declare -i num=3

inter12@inter12:/tmp$ declare -i total=$price*$num

inter12@inter12:/tmp$ echo $total

30

其实针对declare 还存在另一种方式来处理,直接来看代码

1 #!/bin/bash

2 #test declare and $(())

3

4

5 userDeclare(){

6

7 declare -i num=1

8 declare -i price=5

9 declare -i total=$num*$price

10 echo 'declare style is result is ' $total

11 }

12

13

14 userDouble(){

15

16 num_d=1

17 price_d=5

18 total_d=$((num_d*price_d))

19 echo "user double price is" $total_d

20 }

21

22

23 userDeclare

24 userDouble

-----------------------------------------------

inter12@inter12:~/myshell/shell/declare$ ./test

declare style is result is 5

user double price is 5

$((num_d*price_d)):代表执行其中的计算并返回结果 , 若为((num_d*price_d))则计算不返回结果,这里需要注意下!

交互式的命令 read

这也是个很常用的命令,根据终端用户的不同输入,执行不同的脚本命令!

1 #!/bin/bash

2

3 echo '---------------this is the first line ---------------'

4 echo '1.echo heihei while you selectd 1'

5 echo '2.echo haha while you selectd 2'

6 echo -n 'Selections is '

7 read selection

8

9 if [ $selection = "1" ]then

10 echo 'heihei'

11 elif [ $selection = "2" ]then

12 echo 'haha'

13 else

14echo 'invalid option '

15 fi

你可以用()来新开启一个sub-shell,这样子就不会影响当前的shell了,例如:

[cactier@localhost ~]$ (declare -r sum1=defecho $sum1)

def

[cactier@localhost ~]$ echo $sum1

[cactier@localhost ~]$

这个和bash的version有关,不同version,declare命令支持的参数不一样

以我的环境为例,首先执行help declare,查看declare当前支持的信息,如下:

可以看到,-A to make NAMEs associative arrays (if supported),是用来声明关联数组的

使用bash --version,查看bash版本信息:

一切都是bash版本的原因!!!

建议linux中有命令不明白的时候,使用help 命令


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/6195651.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-17
下一篇 2023-03-17

发表评论

登录后才能评论

评论列表(0条)

保存