Bash拾遗:变量
使用引号包裹变量
在《高级Bash脚本编程指南》中的4.1节中有这么个例子:
hello="A B C D"
echo $hello # A B C D
echo "$hello" # A B C D
当时觉得不可思议,对于第二个echo应该是非常好理解的,而第一个echo为什么会把原来变量中的空格消除呢?其实第一个echo中的$hello变量,由于其含有空格又没有引号包裹,实际上为echo命令提供了不只一个参数,做个替换就是:
echo A B C D
这就解释了前面的情况。所以向命令传递有空格字符的参数时要特别注意将其用一个双引号包裹起来,否则变量中的各个部分就分别作为命令的参数(或者解析成其他命令)了。
这样看来bash中的变量在使用时(在作为右值时),就只是进行了一个文本替换,替换后的结果由bash执行
所以在书中有这么一句话:不像其他程序语言一样, Bash并不对变量区分"类型". 本质上, Bash变量都是字符串. 但是依赖于具体的上下文, Bash也允许比较操作和整数操作. 其中的关键因素就是, 变量中的值是否只有数字.
Bash拾遗:变量的更多相关文章
- bash环境变量读取顺序
bash环境变量读取顺序: 交互式登录的用户: /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bas ...
- [转帖]linux bash环境变量简单总结
linux bash环境变量简单总结 来源链接:http://www.178linux.com/8005 原创文章,如有转载,请注明原文地址 需要简单学习一下. 其实 我都是直接放一个 .sh文件到 ...
- bash的变量设置
1. myname=zhangsan //设置变量 2. echo $myname //显示变量 或者:echo ${myname} 3. myname="my name is $mynam ...
- Bash特殊变量:$0, $#, $*, $@, $?, $$实战
在linux下配置shell参数说明 前面已经讲到,变量名只能包含数字.字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量. 例如,$ 表示当前Shell进程的ID,即pid ...
- linux bash环境变量简单总结
来源链接:http://www.178linux.com/8005 原创文章,如有转载,请注明原文地址 一.环境变量简介 Linux是一个多用户的操作系统.每个用户登录系统后,都会有一个专用的运行环境 ...
- Linux之bash的变量
1. 变量的显示,echo echo $变量 或 echo ${变量} eg. echo $HOME 或 echo ${HOME} 2. 变量的设置 变量的设置规则: (1)变量与变 ...
- 六 BASH 高级变量
高级变量分为三类 变量扩展 ${变量名} 例 ${filename} 大括号 命令替换 $(命令) $(ls /) 小括号 算术扩展 $((算数式)) $(( ...
- bash中变量+=,if大小判断,随机休眠
#!/bin/bash index= while true;do echo "hello" (( index+=)) echo `date "+%H:%M:%S" ...
- bash 特殊变量
脚本参数 $* $@ $N shift 执行一个脚本时可以传递参数, 事实上每个参数都有对应的变量$0~$9 ./start.sh a b c $0 $1 $2 $3 当 ...
随机推荐
- 3分钟解决MySQL 1032 主从错误(转)
转自 https://blog.51cto.com/suifu/1845457 3分钟解决MySQL 1032主从错误 Part1:写在最前 1032错误----现在生产库中好多数据,在从库误删了, ...
- 2016级算法期末上机-A.简单·Bamboo's Fight with DDLs I
简单·Bamboo's Fight with DDLs I 分析 一句话:要装满的完全背包问题. 对比完全背包只有一点要改变:初始化为负无穷 传送门: https://buaacoding.cn/pr ...
- 将python的代码文件打包成可执行文件
1.使用pip install Pyinstaller 命令安装 2.使用命令 pyinstaller -F *.py打包成exe 3.在\dist文件夹下找到exe; 一.pyinstaller ...
- axiso 生产环境跨域配置(可用)
1.npm install axios 后 在main.js中import import Axios from 'axios'Vue.prototype.$http = Axios 2.请求配置 th ...
- 安装CentOS 7.4时服务器出现No Caching mode page found问题的解决方法
2019-03-27 前提准备条件: 操作系统:centos 7.4:服务器使用U盘安装,U盘使用UltraISO制作启动盘 安装过程出现的问题: [sdb] No Caching mode page ...
- Openerp 添加修改报表
Report Designer 模块在生成新报表的时候是有BUG的不建议直接使用,不过我们也可以通过该插件再写简单的代码来实现新添加报表,插件安装成功后我们可以按照下列方法来添加报表 OpenERP ...
- hibernate3.3.2搭建Junit日志环境
搭建好log4j日志环境后,再来搭建Junit测试环境: 测试代码放在另外一个目录下,项目右键,new一个source folder,源代码目录,放我们的测试代码,名字test.src放源代码. 比较 ...
- redis 持久化之 rdb 快照持久化
解释1: 虽然redis是单进程,但是它有一个单独的子进程进行rdb操作,为了保证的数据的一致性,当进行rdb操作失败的时候,主进程就停止写入 所以才有了stop-write-on-bgsave-er ...
- 安装TD出现Unknown user name or bad password问题
在Server 2003 sp2上安装TD8.0 出现Unknown user name or bad password,是因为2003启用了DEP保护. 关闭系统的DEP保护就可以了. 方法如下 ...
- windows 3389 远程
3389常用命令: 1.查询终端端口 REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinSt ...