shell中的变量a=100, 什么时候作整数使用, 什么时候作字符串使用呢?
shell中的变量a=100, 什么时候作整数使用, 什么时候作字符串使用呢?
这确实是一个困扰很久的一个问题? how it can be an issue?
事实上, 在shell中, 你可以认为存在数据类型, 只有三种, 即: 整数变量, 字符串变量, 文件变量.
也可以认为, 不存在数据类型, shell在 定义变量的时候, 总是 "默认"的把变量 认为是 字符串.
那关键就在于: 你是如何使用, 如何操作 shell变量的, 根据你的操作,你的 命令, 你的操作符 来决定该shell变量是 作为 一个整数,还是 作为 一个字符串, 还是作为 一个 文件变量. 所以 shell变量是什么类型并不是固定的, 完全在于你的操作!!!
比如:
foo=100
let foo+=100, 那么由于此时你使用的是, let 操作, let命令, 因此, 这里的foo就是作为 一个整数变量来 对待的, 或者说, foo是一个整数变量
echo $foo // 输出200
foo=$foo+100 ,这里由于没有使用 let expr等命令, foo就是作为一个字符串变量来对待的, 或者说, foo是一个字符串变量.
echo $foo // 输出200+100, 加号是shell字符串**连接**的运算符
在shell中, 有三种进行整数计算的方式
- let
- expr
- $[ ...] 单中括号加$符号, 如:
a=$[1+2]
speak of: 谈到, 说到, speak of the devil [dev2l] 说曹操曹操到.
shell中的变量a=100, 什么时候作整数使用, 什么时候作字符串使用呢?的更多相关文章
- SHELL 中的变量
变量的分类 系统环境变量 系统本身所有,通常为大写字母 系统变量通过 set 或 declare 指令进行查看 UDV 变量(user defined variable ) 用户创建和维护,建议大写 ...
- C Shell中的变量数组
今天刚刚在看一点C Shell的内容,发现一个挺好玩的东西!就是环境变量可以像数组那样来设置!具体设置语法如下: set variable=(element1 element2 ...) //注意元素 ...
- Linux Shell中的变量声明和一些特殊变量
在SHELL中定义变量比较直接,无类型区别,不需要像Java那样定义好是String还是int等. 声明变量需要遵守或者注意的几点: 变量名和等号之间不能有空格. 变量名首字符必须为字母. 变量名里可 ...
- shell专题(四):Shell中的变量
4.1 系统变量 1. 常用系统变量 $HOME.$PWD.$SHELL.$USER等 2.案例实操 (1)查看系统变量的值 [atguigu@hadoop101 datas]$ echo $HOME ...
- Shell中脚本变量的作用域
原文地址:http://blog.csdn.net/abc86319253/article/details/46341839 在shell中定义函数可以使代码模块化,便于复用代码.不过脚本本身的 ...
- [Z] Shell中脚本变量和函数变量的作用域
在shell中定义函数可以使代码模块化,便于复用代码.不过脚本本身的变量和函数的变量的作用域问题可能令你费解,在这里梳理一下这个问题. (1)Shell脚本中定义的变量是global的,其作用域从被定 ...
- (二)shell中的变量
1.常用系统变量 $HOME.$PWD.$SHELL.$USER等 2.自定义变量 基本语法: (1)定量变量:变量=值 (2)撤销变量:unset 变量 (3)声明静态变量:readonly变量 注 ...
- shell中环境变量
Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量. 所以管理环境变量的文件也分为系统级和用户级的, ...
- 有时候shell中某些变量总是不能被改变是什么原因
答:在子shell执行,那么变量的值总是不能如愿以偿的改变,示例如下: #!/bin/sh var="jello" cat "jello.txt" | whil ...
随机推荐
- C# Control.Invoke匿名委托
if (txbValue.InvokeRequired) txbValue.Invoke(new MethodInvoker(delegate() { ...
- tp 例子=登录逻辑
<?php namespace Home\Controller; use Think\Controller; class LoginController extends Controller{ ...
- Visio 保存卡死解决办法
右键Visio图标 属性--兼容性--以兼容模式运行这个程序 要打上对勾 且下面的系统版本要选和你电脑版本一致的选项 特权等级 以管理员身份运行次程序 要打上对勾
- 如何运行ruby代码
第一种,ruby -e 在命令行中运行下面命令,-e的意思是,把后面的字符串当作脚本执行 ruby -e "print 'hello'" 使用irb交互控制台 在命令行输入irb ...
- Sitecore CMS中的项目如何配置帮助文本
如何在Sitecore CMS中的项目上配置帮助文本. 所有Sitecore项目都有长短描述字段,以及“帮助链接”字段.这些字段有助于向内容编辑者提供其他信息.这对于很少编辑的项目和字段尤其重要,因为 ...
- modelform的简介
Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否 ...
- c# 静态方法和数据
c#所有方法都必须在类的内部声明,但如果把方法或者字段声明为static就可以使用,类名代用方法或者访问字段. 在方法中声明一个静态变量a 和一个静态的aFun方法.下面是在主函数中调用. 从上图可以 ...
- MongoDB-Java的两个基本操作Upsert和insertMany
此文只是为了记录几个基本操作,首先Upsert,有多种方法可以进行,但是都需要指定UpdateOptions.upsert(true),其中最简单的办法如下(eqq是一个用来filter的BSON,具 ...
- golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍
golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍 go语言爬虫框架:gocolly/colly,goquery,colly,chrom ...
- golang学习笔记9 beego nginx 部署 nginx 反向代理 golang web
golang学习笔记9 beego nginx 部署 nginx 反向代理 golang web Nginx 部署 - beego: 简约 & 强大并存的 Go 应用框架https://bee ...