Shell笔记-入门、变量
shell 是一种脚本语言,常见的脚本解析器有bash,sh,csh等。shell文件的后缀为.sh。
本文主要摘记了Shell的简介,以及Shell的变量。
Shell介绍-简介,变量
简介
Hello world
test.sh代码1
2
3
4
5
6!/bin/bash
------
第一个shell程序
------
echo "Hello World"
运行方式:terminal是基于shell的,所以直接输入文件地址就可以运行,如:
./test.sh。如果想要全局使用,则需将文件的目录配置在$PATH全局变量中,如此使用test.sh即可运行,将文件后缀去除,则运行方式将变为test。
开头的
#!表示使用什么解析器执行。
注释
以#开头的行就是注释,shell没有多行注释,但块注释习惯使用如下:1
2
3------
快注释
------
输出打印
shell打印输出主要有 echo,printf两个函数。
echo
- 行输出,即输出完后自动换行
- 由于shell的特性,
可以为 "",''和不加这三种形式,总的来说,在转义字符方面都存在着不同,建议使用""形式输出或者定义字符串。 - 参数
-e,表示执行转义字符。echo默认是不执行的。
printf
[arguments…] - 以
为模版输出 - 不会自动换行,换行需要加
\n,默认执行转义字符 %d,%s替代argument中的值,值的类型需要与%值的类型依次对应;若arguments的值多于中的 %值,表示轮回输出arguments- 在printf的
中 ""和''含义相同,但不加却会使语法混乱,从而无法解析,所以为了统一,建议一直使用""。
- 以
变量/常量
变量
定义/获取变量
定义格式如下:
1
variableName="value"
特别注意
=前后都不能有空格可以通过
readonly variableName将变量设置只读可以通过
unset variableName将变量删除,但不能删除只读变量。获取方式如下:
$variableName或者${variableName}获取变量推荐使用
${variableName}方式。
系统变量
- 自定义环境变量:
export NAME=value(环境变量名习惯由大写字母组成),
export也可修改系统环境变量,所以自定义的时候需注意NAME冲突。 - 系统环境变量,常用的:
- EUID:当前用户的UID
- PWD: 当前路径
- PATH: 命令搜索路径
- 自定义环境变量:
特殊变量
$nn为数字,命令输入的集合,所以
$0存储的是函数名,$1,..$n存储的是对应位置上的参数$_表示最后一个参数$#表示参数个数$*,$@表示所有参数的数组,区别当"$*"形式时,其返回一个字符串,且默认返回为一个空字符串,$@则不变。$?上个命令的退出状态或者返回值,exit 返回的值,获取打印输出值可以通过命令替换获取$$当前Shell进程ID
命令替换
将指令的输出值赋值给变量,赋值时运行该指令。(同步)
1
2
3variableName=`command`
或者
variableName=$(command)变量替换
格式:`${variableName:<替换标示>}
替换标示
-word如果变量为空或被unset,那么返回word,且原来变量不变=word同上,但改变原来变量?word如果变量为空或被unset,以word为错误message抛出错误+word如果变量被定义,那么返回word,且不改变原变量
注意 word可为字符串,也可以为
${变量}
原文作者: hxkuan