网站首页 > 技术文章 正文
格式:
#! /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标签-表单元素
你 发表评论:
欢迎- 07-10Oracle 与 Google Cloud 携手大幅扩展多云服务
- 07-10分享收藏的 oracle 11.2.0.4各平台的下载地址
- 07-10Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务
- 07-10Oracle Database@Azure 推进到南美等新区域并增加了新服务
- 07-10Oracle宣布推出 Oracle Database@AWS 的有限预览版
- 07-10Oracle与Nextcloud合作,推出主权云上的安全协作平台
- 07-10NodeRED魔改版连接MsSql、PostgreSQL、MySQL、OracleDB存储无忧
- 07-10对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 601℃几个Oracle空值处理函数 oracle处理null值的函数
- 593℃Oracle分析函数之Lag和Lead()使用
- 581℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 578℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 573℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 566℃【数据统计分析】详解Oracle分组函数之CUBE
- 552℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 547℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- Oracle 与 Google Cloud 携手大幅扩展多云服务
- 分享收藏的 oracle 11.2.0.4各平台的下载地址
- Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务
- Oracle Database@Azure 推进到南美等新区域并增加了新服务
- Oracle宣布推出 Oracle Database@AWS 的有限预览版
- Oracle与Nextcloud合作,推出主权云上的安全协作平台
- NodeRED魔改版连接MsSql、PostgreSQL、MySQL、OracleDB存储无忧
- 对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 解读丨《归档文件整理规则》— 电子文件元数据存储
- Data Guard跳归档恢复的实践(dataguard failover)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (57)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)