网站首页 > 技术文章 正文
格式:
#! /bin/bash
...
exit 0
Linux(Ubuntu)默认使用bash程序,其中exit 0表示脚本执行成功
与终端交互
#从终端读取参数,会从当前行阻塞
read var
#向终端打印hello
echo “hello”
Shell系统变量
$?:表示保存前一个命令的返回值
$0:当前程序名
$1:第一个参数
$2:第二个参数
$n:第n个参数
$#:保存参数的个数
$* : 以("$1 $2 …")的形式保存所有输入的命令行参数(保留输入区分隔符)。
$@: 以("$1" "$2" …)的形式保存所有输入的命令行参数(不保留输入区分隔符)。
$HOME 当前用户的登录目录
$PATH 当前系统命令的搜索目录清点
$PS1 命令提示符,通常是“$”字符
$PS2 辅助提示符,通常是“>”字符
$IFS 输入区的分割符,通常是空格、制表符、换行符.
定义变量并取值
var=hello 注意这里赋值时必须要紧挨着等号,否则会不认识
$var :表示取变量值: hello
${var} :也是取变量的值:hello ,之所以带花括号,是为了区别变量名与字符串中内容冲突的情况
var=hello
echo "${var}iable" 这种情况打印:helloiable
echo "$variable" 这种情况打印为空字符串,因为variable变量我们没有定义
加入我们之前定了var变量,我们又想打印"$var"这个字面值,而不是打印变量var的内容,我们应该在$前面使用转义符"\"
\${var} :将打印"${var}"
\$var :将打印"$var"
i=`expr $i + 1` :取变量i的值并加1,然后赋值给i,注意这里使用的是反引号而不是单引号
$(($i+1)) :与上边的效果相同,也是表达式赋值
var=$(cmd 参数) : 执行系统命令,将其打印的结果保存到var变量中
其中cmd是Linux系统的shell命令
字符串判断表达式
[html] view plain copy
- 相等 str = str2 注意这里 两个字符串与等号隔开,否则会认为是赋值
- 不等 str != Str2
- 非空 N str
- 空 Z str
算数表达式
[html] view plain copy
- 相等 data1 eq data2
- 不相等 data1 Ne data2
对文件的操作
[html] view plain copy
- 为目录文件 -d file
- 是否为空文件 -s file
- 文件存在 -e file
- 普通文件存在 -f file
是否设置了组权限、用户权限
[html] view plain copy
- -g file
- -u file
是否可读、可写、可执行
[html] view plain copy
- -r file
- -w file
- -x file
条件语句
if [ expression ] # 中括号内必须为表达式expression
then
echo “123”
else
echo "456"
fi
test 命令替代中括号
if test -f android.c
then
echo "exist"
else
echo "not exist"
fi
echo "please input yes/no"
read var
if [ ${var} = "yes" ]
then
echo "data yes"
elif [ ${var} = "no" ]
then
echo "data no"
else
echo "input data is: "${var}
fi
For循环语句
for item in ${list} #循环从list中读取到item变量中
do
echo ${item}
done
While 循环
while [ “123” = “123” ]
do
echo “hello”
done
分之语句
case ${var} in
"yes")echo "world";; #注意这里必须双分号结束.
"no")echo "hello";;
*)echo "****";; #匹配所有字符串,必须放到最后面
esac
Until语句
read var
until [ $var = "hello" ] 条件为真则跳出循环
do
read var
done
函数
function_name()
{
echo “第一个参数$1”
echo “第二个参数$2”
echo “第三个参数$3”
}
#调用函数,并传递三个参数,函数必须在调用前定义,且必须有函数体.
function_name 1 2 3
*脚本调试
[html] view plain copy
- sh -n <script> 检查脚本语法是否有错
- sh -v <script> 执行每条脚本语句前,并打印本条脚本语句,并回显执行结果
- sh -x <script> 执行每条脚本语句后,并打印本条脚本语句,并回显执行结果
- 上一篇: 箭头函数太长了,缩短小窍门来了
- 下一篇: 前端网页web开发大神总结的HTML标签-表单元素
猜你喜欢
- 2025-05-23 浅谈3种css技巧——两端对齐
- 2025-05-23 JSONP安全攻防技术
- 2025-05-23 html5学得好不好,看掌握多少标签
- 2025-05-23 Chrome 调试时行号错乱
- 2025-05-23 本文帮你在Unix上玩转C语言
- 2025-05-23 Go 中的安全编码 - 输入验证
- 2025-05-23 31个必备的python字符串方法,建议收藏
- 2024-09-22 正则表达式,这篇看完就够了
- 2024-09-22 web前端布局HTML+CSS
- 2024-09-22 前端网页web开发大神总结的HTML标签-表单元素
你 发表评论:
欢迎- 05-23浅谈3种css技巧——两端对齐
- 05-23JSONP安全攻防技术
- 05-23html5学得好不好,看掌握多少标签
- 05-23Chrome 调试时行号错乱
- 05-23本文帮你在Unix上玩转C语言
- 05-23Go 中的安全编码 - 输入验证
- 05-2331个必备的python字符串方法,建议收藏
- 05-23Dynamics.js – 创建逼真的物理动画的 JS 库
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)