shell学习笔记之变量(一)
一、普通变量
1.使用变量之前通常并不需要事先声明,通常赋值的时候创建他们
2.默认所有的变量都被看做字符串,并且以字符串存储
3.变量区分大小写
4.变量名前面添加$符号来访问变量,赋值的时候只需要使用变量名
5.如果字符串中包含空格,就必须用引号括起来
6.等号两边不能有空格
#!/bin/sh myvar="Hi there" echo $myvar
echo "$myvar"
echo '$myvar' #不会发生替换
echo \$myvar #不会发生替换 echo Enter some text
read myvar
echo '$myvar' now equals $myvar salutation=+ exit $./variable
Hi there
Hi there
$myvar
$myvar
Enter some text 输入:Hello World
$myvar now equals Hello World +
二、环境变量和参数变量
$0 shell脚本的名称
$1, $2,... 脚本程序的参数
$# 传递给脚本的参数的个数
$* 在一个变量中列出所有的参数,各个参数之间用环境变量IFS中的第一个字符分割开。
如果IFS被修改了,那么$*将命令行分割为参数的方式也会改变。
$@ $*的一个变体,不适用IFS变量,即使IFS为空,参数也不会挤在一起。
$$ 脚本的进程号,脚本程序通常会用它来生成一个唯一的临时文件,如/temp/tempfile_$$
$HOME 用户的家目录
$PATH 冒号分割的用来搜索命令的目录列表
$PS1 命令提示符,通常是$字符,在bash中可以设置更复杂的值,比如:[\u@\h \W]$就是一个流行的默认值,
给出用户名、机器名、当前目录名、提示符$
$PS2 二级提示符,用来提示后续的输入,通常是>字符
$IFS 输入域分隔符,读取输入时,它给出用来分割单次的一组字符,通常时候空格,换行符,制表符
$@和$*的区别
$ IFS=''
$ set foo bar bam $ echo "$@"
foo bar bam $ echo "$*"
foobarbam $ unset IFS $ echo "$*"
foo bar bam
shell学习笔记之变量(一)的更多相关文章
- shell学习笔记3---shell变量
Shell变量的定义.赋值和删除 脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell 变量也遵循这个规则. 在 Bash shell 中,每一个变量的值都是字符串,无论你给变量赋值时有 ...
- Shell学习笔记 - 环境变量配置文件(转)
一.source命令 功能:在当前bash环境下读取并执行配置文件中的命令 1. 命令格式 source 配置文件 或 . 配置文件 2. 命令示例 [root@localhost ~]# sou ...
- Shell学习笔记 - 环境变量配置文件
一.source命令 功能:在当前bash环境下读取并执行配置文件中的命令 1. 命令格式 source 配置文件 或 . 配置文件 2. 命令示例 [root@localhost ~]# sou ...
- shell 学习笔记3-shell变量扩展
一.特殊位置参数变量 1.特殊位置参数变量 在shell中比如:$0.$1.$#,等被称为特殊位置参数变量,当命令行.函数.脚本执行等处传递参数时,就需要使用位置参数变量 参数说明如下: 2.示例$1 ...
- Shell 学习笔记之变量
变量 知识点 变量赋值和输出 variable="hello world" echo $variable 或者 echo ${variable} (最后格式统一使用后者) 只读变量 ...
- shell学习笔记
shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...
- [转帖][Bash Shell] Shell学习笔记
[Bash Shell] Shell学习笔记 http://www.cnblogs.com/maybe2030/p/5022595.html 阅读目录 编译型语言 解释型语言 5.1 作为可执行程序 ...
- shell学习笔记汇总
1.shell脚本中函数使用 函数定义在前,调用在后,顺序反了就没有效果了.函数调用为:函数名 参数列表 函数内部通过以下变量访问函数的参数:shell脚本函数中: $0: 这个脚本的名字 $n: 这 ...
- shell 学习笔记2-shell-test
一.字符串测试表达式 前面一篇介绍:什么是shell,shell变量请参考: shell 学习笔记1-什么是shell,shell变量 1.字符串测试表达式参数 字符串需要用""引 ...
随机推荐
- javascript 1.5s跳转
<script type="text/javascript"> var t = 1.5; window.onload=countDown; function count ...
- Oracle执行SQL报错ORA-00922
问题描述: 对Oracle数据库执行序列化脚本出错,ora-00922 missing or invalid option #无效的选项 问题解决: 对于set define off --这个是sq ...
- 在交叉编译中使用最新版的SS
因为旧版本的ss-local总是出现 shake hands failed 错误, 打算用最新的版本试试, 所以尝试在编译中使用最新版的shadowsocks. 项目地址 Shadowsocks-li ...
- FZU - 2039 Pets (二分图匹配 2011年全国大学生程序设计邀请赛(福州))
Description Are you interested in pets? There is a very famous pets shop in the center of the ACM ci ...
- 【LeetCode】57. Insert Interval
Insert Interval Given a set of non-overlapping intervals, insert a new interval into the intervals ( ...
- Windows下面安装和配置Solr 4.9(三)支持中文分词器
首先将下载解压后的solr-4.9.0的目录里面F:\tools\开发工具\Lucene\solr-4.9.0\contrib\analysis-extras\lucene-libs找到lucene- ...
- Ubuntu Pycharm不能同时选中多行解决方法
转自http://blog.csdn.net/yaoqi_isee/article/details/77866309 问题描述 Pycharm和Sublime有一个很好用的特性就是可以同时选中多行进行 ...
- Error_OAF_Flex VO() of flex bean (ExpenseDescFlexs) is null (异常)
2014-06-17 BaoXinjian
- Log4Net基本配置
开源日志管理工具,项目主页:http://logging.apache.org/log4net/ 基本用法: 1.程序目录新建目录“Config”,目录内新建文件“log4net.config”,右键 ...
- 文字识别:CRNN
知乎:一文读懂CRNN+CTC文本行识别 (详解 CTC loss) 来自: https://zhuanlan.zhihu.com/p/43534801 代码:https://github.com/b ...