变量的设置规则
变量与变量内容用一个 = 等号连接 myname=vvvv
等号两边不能直接接空格
变量名称只能是英文字母与数字,但开头不能是数字
变量内容若有空格可使用双引号或单引号将变量的内容结合起来 但双引号内的特殊字符如 $ 可以保持原有特性 如下图
单引号内的字符则不会解析 原样输出
可以使用转义符 \ 将特殊字符变为一般字符进行输出
在一串命令的执行中 还需要借由其他额外命令所提供信息时,可以使用反单引号 ``或者$(命令)
若该变量为扩增变量内容时 则可以用双引号"$变量名称"或花括号{$变量}累加内容
若变量要在其他子程序执行则需要用export来使变量变为环境变量
取消变量方法 unset[变量名称]
在变量设置中单引号和双引号有什么不同?
单引号和双引号的最大不同在于双引号仍可以保持变量内容而单引号只能是一般字符而不会有特殊字符
在命令执行过程中 反单引号【 `】这个符号代表什么?
在一串命令中反单引号中的命令还会被优先执行 而其的执行结果会作为外部输入信息
变量的有效范围?
环境变量等于全局变量 自定义变量等于局部变量
设置命令别名
alias lm='ls -a | more'#将ls -a | more整个设置为别名为lm 直接输入lm就行
unalias lm #删除别名
查看历史命令
history [参数]
shell脚本学习
shell命令的注意事项
- 命令的执行是从上到下 从左往右的分析和执行
- 命令 选项与参数间的多个空格都会被忽视掉
- 空白行也会忽视掉 并且tab键产生的空白页同样视为空格键
- 如果读取到一个enter符号 就开始尝试执行改行命令
- 至于一行的内容太多 则可以使用【 [Enter]】来扩展至下一行
- 【#】可作为注释 任何在其后面的数据都会被注释掉
第一个脚本 用户自己输入名字 用时间做后缀创建三个文件
使用脚本接受变量
Linux系统中的Shell脚本语言早就考虑到了这些,已经内设了用于接收参数的变量,变量之间可以使用空格间隔。例如 0 对 应 的 是 当 前 S h e l l 脚 本 程 序 的 名 称 , 0对应的是当前Shell脚本程序的名称, 0对应的是当前Shell脚本程序的名称,#对应的是总共有几个参数, ∗ 对 应 的 是 所 有 位 置 的 参 数 值 , *对应的是所有位置的参数值, ∗对应的是所有位置的参数值,?对应的是显示上一次命令的执行返回值,而$1、$2、$3……则分别对应着第N个位置的参数值,如图
判断用户参数
Shell脚本中的条件测试语法可以判断表达式是否成立,若条件成立则返回数字0,否则便返回其他随机数值。条件测试语法的执行格式!]。切记,条件表达式两边均应有一个空格
逻辑语句
Shell终端中逻辑“与”的运算符号是&&,它表示当前面的命令执行成功后才会执行它后面的命令
除了逻辑“与”外,还有逻辑“或”,它在Linux系统中的运算符号为||,表示当前面的命令执行失败后才会执行它后面的命令
第三种逻辑语句是“非”,在Linux系统中的运算符号是一个叹号(!),它表示把条件测试中的判断结果取相反值。也就是说,如果原本测试的结果是正确的,则将其变成错误的;原本测试错误的结果则将其变成正确的
整数比较运算符
整数比较运算符仅是对数字的操作,不能将数字与字符串、文件等内容一起操作,而且不能想当然地使用日常生活中的等号、大于号、小于号等来判断。因为等号与赋值命令符冲突,大于号和小于号分别与输出重定向命令符和输入重定向命令符冲突。因此一定要使用规范的整数比较运算符来进行操作。
字符串比较符
参考书籍 《鸟哥的Linux私房菜》《Linux就该这么学》