Shell学习笔记---变量赋值与运算(原创)
声明:本文仅作学习研究使用,多数语句都是为了介绍语法而构造的。
#!/bin/bash
#Filename:prameter_parctise2
#Datetime:2010_12_24 09:24
#Discription:Practise of evaluating parameters
# 等号赋值
a=879
echo "The value of \"a\" is $a."
# 使用let赋值
let a=16+5
echo "The value of \"a\" is now $a."
echo The value of \a\ is now $a.
# 在for循环中赋值(事实上, 这是一种伪赋值):
echo -n "Values of \"a\" in the loop are: "
#--------------------------------------------
for a in 7 8 9 11
do
echo -n "$a "
done
echo
#--------------------------------------------
#使用read命令进行赋值(这也是一种赋值的类型):
echo -n "Enter \"a:\" "
read a
echo "The value of \"a\" is now $a."
#--------------------------------------------
b=$a
echo $b
# 现在让我们来点小变化(命令替换).
c=`echo Hello!` # 把echo命令的结果传给变量a
echo $c
c=`ls -l` # 把ls -l的结果赋值给a
echo $c #然而, 如果没有引号的话将会删除ls结果中多余的tab和换行符.
echo "$c" #如果加上引号的话, 那么就会保留ls结果中的空白符.
#命令替换也可以通过( )实现
R=$(cat /etc/redhat-release)
arch=$(uname -m)
echo $R; echo $arch
exit 0
进行浮点运算
#!/bin/bash
echo -n "Inpute a:"
read a
echo -n "Input b:"
read b
#计算a,b的乘积,包括浮点数
c=` "scale=3;$a*$b" | bc`
echo "c=$c"
exit 0
#!/bin/bash
#Filename:parameter_replacement.sh
#Datetime:2010_12_24 17:09
#Discription:Replace the parameter
myfruit="pear"
fruit=${myfruit:-apple} #对于“:-":如果myfruit变量被定义过且不为空,则不传入"apple"。否则传入
echo When myfruit is set ,fruit is :$fruit apple,该传是暂时的,非永久性
unset myfruit
fruit=${myfruit:-apple}
echo When myfruit is unset,fruit is :$fruit
unset var_x
echo When var_x is unset,var_x is :$var_x #对于":=",如果var_x变量未被定义过或为空,则将var_x赋值为"shala"。否则
echo Now var_x is: ${var_x:=shala} 将var_x变量将保留他原本的值。该赋值为永久性的,非暂时性的
echo Now var_x is: ${var_x:=banana}
unset var_x
echo ${var_x:+"aoyun beijing"} #对于":+",如果var_x变量未被定义或为空,则不传入"aoyun beijing"。如果
var_x="beijing 2008" var_x被定义过, 则传入"aoyun beijing",该传是暂时的,非永久性
echo ${var_x:+"aoyun beijing"}
echo var_x is:$var_x
exit 0
参考至:http://club.topsage.com/viewthread.PHP?tid=668357 highlight=shell
本文原创,转载请注明出处、作者
如有错误,欢迎指正
邮箱:czmcj@163.com
相关文章
- V-rep学习笔记:Reflexxes Motion Library 1
- Swoole笔记(二)
- ES6学习笔记之map、set与数组、对象的对比
- Django学习笔记之——Forms
- 制作火焰图(纯笔记)
- ObjectArx学习笔记-导入导出图层列表
- Redis学习笔记
- 《从零开始学Swift》学习笔记(Day 62)——Core Foundation框架之内存托管对象与非托管对象
- 《从零开始学Swift》学习笔记 (Day 58)—— Swift编码规范之变量或常量声明规范
- 《从零开始学Swift》学习笔记(Day 8)——小小常量、变量大作用
- 机器学习入门 - Google机器学习速成课程 - 笔记汇总
- MATLAB学习笔记 - 计算特征向量手动执行PCA
- Opencv学习笔记 - 使用opencvsharp和随机森林进行分类和回归问题
- 机器学习笔记 - 如何对两个分类变量使用卡方检验?
- Activiti 笔记
- uni-app 前后端实战课 - 《悦读》学习笔记:【部署 php 环境】小程序开发实例教程4
- vue学习笔记
- 【计组笔记03】计算机组成原理之系统五大部件介绍、主存模型和CPU结构介绍
- Cocos2D-X2.2.3学习笔记9(处理重力感应事件,移植到Android加入两次返回退出游戏效果)
- cocos2d-x lua 学习笔记(1) -- 环境结构
- Cocos2d-x学习笔记(9)(CCTextFieldTTF使用输入框)
- Python学习笔记(三)——类型与变量
- cocos2dx游戏开发——微信打飞机学习笔记(十)——碰撞检测的搭建
- ELASTIC SEARCH学习笔记(四)----与传统数据库(MYSQL)的比较
- C++标准库 -- 关联容器 (Primer C++ 第五版 · 阅读笔记)
- java学习笔记——接口
- Linux基础笔记18 | 磁盘分区管理
- Linux基础笔记15 | 文本处理与压缩补充知识
- Linux基础笔记14 | 正则表达式从崩溃到入门
- AD学习笔记