Shell脚本之:变量
2024-08-26 14:36:30
与编译型语言不同,shell脚本是一种解释型语言。
执行这类程序时,解释器(interpreter)需要读取我们编写的源代码(source code),并将其转换成目标代码(object code),再由计算机运行。
Linux默认的脚本解析器是bash。
参考资料 http://c.biancheng.net/cpp/view/6994.html
第一个Shell脚本
下面演示我们的第一个shell脚本,使用文本编辑器(如vi),键入如下代码并保存为hello.sh
#!/bin/bash # 打印hello world
echo "Hello World !"
然后给该脚本赋予执行权限
chmod +x ./hello.sh
然后执行该脚本,终端就会显示Hello World!
其中脚本第一行#!/bin/bash 指明了该脚本的解释器
sh里没有多行注释,只能每一行加一个#号
read命令
下面的脚本使用read命令从 stdin 获取输入并赋值给 PERSON 变量,最后在 stdout 上输出
#!/bin/bash
echo "What is your name?"
read PERSON
echo "Hello, $PERSON"
下面是运行情况
Shell变量
定义变量
variableName="value"
使用一个定义过的变量,只要在变量名前面加美元符号($)即可,如:
name="runnyu"
echo ${name}
花括号可加可不加,加花括号是为了帮助解释器识别变量的边界。使用readonly+变量名可以将变量定义为只读变量,unset+变量名可以删除变量
readonly name
unset name
特殊变量
编写special.sh测试
#!/bin/sh
echo "pid=$$"
echo "$0"
echo "$1"
echo "$2"
echo "$#"
echo "$*"
运行结果
$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。
但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。
最新文章
- ORLEANS REMOTE DEPLOYMENT
- C++复现经典游戏——扫雷
- Dewey – 标记和搜索 Chrome 浏览器书签
- 转 自定义View之onMeasure()
- Android studio 读取properties文件
- symfony2-不同bundle的entity的一对多关系
- Core Animation之多种动画效果
- 深入理解 JavaScript 异步系列(4)—— Generator
- Appium python自动化测试系列之日志的收集(十二)
- DXGI快速截屏录屏技术
- JWT实战:使用axios+PHP实现登录认证
- BigDecimal.valueOf
- /bin, /sbin &; /usr/bin, /usr/sbin &; /usr/local/bin, /usr/local/sbin &; glibc
- Web前端方向课程要点:CSS3渐变制作过程
- termios结构体各成员的值(FreeBSD 12.0)
- 关于SGA中的granule size
- 集合框架_DAY15
- SendMessage wMsg常量值参考
- react-native 打包 出apk
- ASP.NET Core 中的应用程序启动 Startup