linux bash shell之declare
linux bash shell之declare
declare或typeset内建命令(它们是完全相同的)可以用来限定变量的属性.这是在某些编程语言中使用的定义类型不严格的方式。命令declare是bash版本2之后才有的。命令typeset也可以在ksh脚本中运行。
declare/typeset 选项
- -r 只读
-
1 declare -r var1
(declare -r var1与readonly var1作用相同)
这大致和C的const限定词相同.一个试图改变只读变量值的操作将会引起错误信息而失败.
- -i 整数
-
1 declare -i number2 # 脚本余下的部分会把"number"当作整数看待. 3 4 number=35 echo "Number = $number" # Number = 36 7 number=three8 echo "Number = $number" # Number = 09 # 脚本尝试把字符串"three"作为整数来求值(译者注:当然会失败,所以出现值为0).
某些算术计算允许在被声明为整数的变量中完成,而不需要特别使用expr或let来完成。
1 n=6/32 echo "n = $n" # n = 6/33 4 declare -i n5 n=6/36 echo "n = $n" # n = 2
- -a 数组
-
1 declare -a indices
变量indices会被当作数组.
- -f 函数
-
1 declare -f
在脚本中没有带任何参数的declare -f 会列出所有在此脚本前面已定义的函数出来。
1 declare -f function_name
而declare -f function_name则只会列出指定的函数.
- -x export
-
1 declare -x var3
这样将声明一个变量作为脚本的环境变量而被导出。
- -x var=$value
-
1 declare -x var3=373
declare命令允许在声明变量类型的时候同时给变量赋值。
例子 9-21. 用declare来声明变量类型
1 #!/bin/bash2 3 func1 ()4 {5 echo This is a function.6 }7 8 declare -f # 列出上面的函数.9 10 echo11 12 declare -i var1 # var1是一个整数.13 var1=236714 echo "var1 declared as $var1"15 var1=var1+1 # 整数声明后,不需要使用'let'.16 echo "var1 incremented by 1 is $var1."17 # 试图将已声明为整数的变量的值更改为浮点值.18 echo "Attempting to change var1 to floating point value, 2367.1."19 var1=2367.1 # 引起一个错误信息,此变量的值保持原样.20 echo "var1 is still $var1"21 22 echo23 24 declare -r var2=13.36 # 'declare'允许设置变量的属性,25 #+ 同时也给变量赋值.26 echo "var2 declared as $var2" # 试图更改只读变量的值.27 var2=13.37 # 引起错误,并且从脚本退出.28 29 echo "var2 is still $var2" # 这行不会被执行.30 31 exit 0 # 脚本不会从这儿退出. |
使用内建的declare来限定变量的范围.
然而 . . .
|
linux bash shell之declare相关推荐
- linux bash shell之变量替换::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法
linux bash shell之变量替换::=句法.=句法.:-句法.-句法.=?句法.?句法.:+句法.+句法 变量替换和变量默认值设置是紧密相关的,至少从概念出发是如此. 参数扩张是将类似于变量 ...
- linux bash and,linux bash shell中for的用法and示例
关于linux bash shell中的for语句 在linux中shell是必不可少的一部分,但是在bash shell中有while,for,until等循环命令,今天就介绍一下关于for的一些用 ...
- linux bash shell wget 下载google drive(谷歌云端硬盘)中大文件
linux bash shell wget 下载google drive(谷歌云端硬盘)中大文件 wget --load-cookies /tmp/cookies.txt "https:// ...
- linux bash java,从Linux Bash Shell配置NIC
我有戴尔笔记本电脑运行以下版本的RedHat Linux:2.6.18-53.el5#1 SMP Wed 10月10日16:34:02 EDT 2007 i686 i686 i386 GNU / Li ...
- Linux bash shell基础语法
转自:http://blog.sina.com.cn/s/blog_46177c3401014fty.html 一.Shell基本类型的变量: (1)Shell定义的环境变量: Shell在开始执行时 ...
- linux emacs命令,Linux Bash Shell 终端 Terminal Emacs 模式 常用 快捷键 命令
背景: OS:Ubuntu 16.04 Bash 的编辑模式:Emacs 模式 本文介绍的快捷键 仅当 您的 Bash 的编辑模式 为 Emacs 模式 时 有效,Bash 默认的编辑模式为 Emac ...
- Linux Bash Shell j简单入门
BASH 的基本语法 最简单的例子 -- Hello World! 关于输入.输出和错误输出 BASH 中对变量的规定(与 C 语言的异同) BASH 中的基本流程控制语法 函数的使用 2.1 ...
- Linux Bash Shell编程快速入门
BASH 的基本语法 最简单的例子 -- Hello World! 关于输入.输出和错误输出 BASH 中对变量的规定(与 C 语言的异同) BASH 中的基本流程控制语法 函数的使用 2.1 ...
- Linux Bash Shell学习(十八):String I/O——echo和printf
本文也即<Learning the bash Shell>3rd Edition的第七章Input/Output and Command-Line Processing之读书笔记之二. e ...
最新文章
- 国家计算机病毒中心发现“网游大盗”新变种
- 理解Kubernetes(2): 应用的各种访问方式
- [工具向]__androidstudio签名打包apk及配置自动签名
- java mysql开发_Java数据库开发
- 使用RichTextBox控件实现系统剪切板功能
- windows系统c++多线程开发
- qtabwidget放大_Qt自定义弹窗屏蔽父窗口(QWidget设置setWindowModality(Qt::ApplicationModal);以后再show)...
- 百度网盘不限速下载神器献给你
- 命令行导出和导入数据库 How to export and import MySQL database using command line Interface...
- 8Python全栈之路系列之Django Cookie 与Sessi
- Redis学习(1)NoSQL非关系型数据库、Redis概述、Linux安装Redis
- 面积积分_新市民随迁子女积分入学指标调整 房产建筑面积每平方米积1分
- 偏微分方程数值解的matlab 实现,偏微分方程数值解的Matlab 实现
- 诺诺开放平台(电子发票、智能编码、发票查验接口调用)
- Android关键字persistent
- Oracle Spatial详解
- JS 缓存: Service Worker 实现离线应用
- 使用批处理解决U盘内出现的同名文件夹EXE病毒问题
- Oxyplot实时绘图学习笔记(下)
- Unreal Engin_画廊制作笔记 _003设置贴花在场景中可见