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 debugger 语句
实例 开启 debugger ,代码在执行到第三行前终止. var x = 15 * 5; debugger; document.getElementbyId("demo").in ...
- Vue 生命周期LIFECYCLE是8个吗?
vue生命周期钩子个数是:11个. export const LIFECYCLE_HOOKS = [ 'beforeCreate', 'created', 'beforeMount', 'mounte ...
- 深入理解 Linux 内存管理
1. 内存地址 以Intel的中央处理器为例,Linux 32位的系统中.物理内存的基本单位是字节(Byte),1个字节有8个二进制位. 每一个内存地址指向一个字节,内存地址加1后得到下一个字节的地址 ...
- CSS3实现两行或三行文字,然后多出的部分省略号代替
概述 -webkit-line-clamp 是一个 不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中.限制在一个块元素显示的文本的行数. 为了实 ...
- 〖Linux〗Qt+gsoap开发客户端程序,服务端地址设定的字符串转换处理
之所以写出来,是由于经常因为这个问题屡屡丢面子.. 一般情况下,QString转换成(char*),我们一般直接使用: char *str = qstr->text().toLatin1().d ...
- 【Oracle】(savepoint)保存点的使用
作用 保存点可以回退到事务的一部分,我们在操作数据库的过程中可以对事务分隔为几个部分,在操作失误的时候就可以回滚到某个点即可. 实现步骤 我们现在新建一张表TMP003 )); 第一步:插入第一条记录 ...
- JVM内存管理、JVM垃圾回收机制、新生代、老年代以及永久代
内存模型 JVM运行时数据区由程序计数器.堆.虚拟机栈.本地方法栈.方法区部分组成,结构图如下所示. JVM内存结构由程序计数器.堆.栈.本地方法栈.方法区等部分组成,结构图如下所示: 1)程序计数器 ...
- newInstance() 的参数版本与无参数版本
通过反射创建新的类示例,有两种方式: Class.newInstance() Constructor.newInstance() 以下对两种调用方式给以比较说明: Class.newInstance ...
- java中的finally详解(finally中没有return i,却有i=XX)
问题分析 首先来问大家一个问题:finally 语句块一定会执行吗? 很多人都认为 finally 语句块是肯定要执行的,其中也包括一些很有经验的 Java 程序员.可惜并不像大多人所认为的那样,对 ...
- [Table] pm_result
', '20160501.17:30 - 20160501.17:45', '2.1', '3.1', '3.1', '3.11', '3.44', '12.30', null, null, null ...