Shell 编写摘要 (一)
PS:要转载请注明出处,本人版权所有。
PS: 这个只是基于《我自己》的理解,
如果和你的原则及想法相冲突,请谅解,勿喷。
前置说明
本文作为本人csdn blog的主站的备份。(BlogID=025)
本文发布于 2016-08-25 17:06:11,现用MarkDown+图床做备份更新。blog原图已丢失,使用csdn所存的图进行更新。(BlogID=025)
环境说明
无
前言
无
Shell
注释:本文中主要参考《shell脚本学习指南》和自己的理解所写而成
- Shell 变量问题
算术展开:
$((算术表达式)) 返回表达式的值
eg: echo $((1+2*3)) 返回7
变量替换(主要还是用来测试一个变量是否定义且不为空):
$(varname:-0) varname未定义或者为null,返回0
用处:用于测试变量是否定义
$(varname:=0) varname未定义或者为null,给varname赋值0
用处:用于给未定义变量赋初值
$(varname:?msg) varname未定义或者为null,返回msg
用处:用于当变量未定义时,提示一个信息
$(varname:+1) varname定义或者不为null,返回1
用处:用于测试变量已经存在切不为null,返回1
位置参数(用于向脚本传入参数):
${num} 获取传入num'th的值
$# 返回传入参数总的个数
$@ 以多个字符串方式返回所有传入参数
$* 以一个字符串方式返回所有传入参数
特殊符号:
$? 最近命令执行的返回值,0 表示成功执行,非0 表示有异常
- Shell 脚本流控制
逻辑运算
test 等效于 [ ...... ]
eg: test "$var" = "$var1" 等效 [ "$var" = "$var1" ]
下面是非常重要的test 选项表
if 控制语句
格式:
if pipeline
then
......
elif pipeline
then
......
else
......
fi
for 控制语句(支持continue,break)
格式:
for var [in list]
do
......
done
while 控制语句(支持continue,break)
格式:
while condition
do
......
done
until 控制语句(支持continue,break)
格式:
until condition
do
......
done
- 脚本函数
函数定义(支持return 从函数返回):
functionName(){
........
return val
}
函数调用(特殊变量$#,$@,$*等特殊位置变量会被临时覆盖):
funcitonName arg0 arg1 arg2 ...
后记
无
参考文献
无
打赏、订阅、收藏、丢香蕉、硬币,请关注公众号(攻城狮的搬砖之路)
PS: 请尊重原创,不喜勿喷。
PS: 要转载请注明出处,本人版权所有。
PS: 有问题请留言,看到后我会第一时间回复。
Shell 编写摘要 (一)的更多相关文章
- Linux shell编写脚本部署pxe网络装机
Linux shell编写脚本部署pxe网络装机 人工安装配置,Linux PXE无人值守网络装机 https://www.cnblogs.com/yuzly/p/10582254.html 脚本实 ...
- Shell编写字符菜单管理-8
第8章 Shell编写字符菜单管理 一.shell函数定义function menu(){ echo 'this is a func!!';} 二.shell函数使用menu 三.cat命令的here ...
- Linux shell编写端口扫描脚本
Linux shell编写端口扫描脚本 需求: 扫描特定主机 扫描特定主机的特定端口 扫描特定网段 扫描特定网段中哪些主机开放了特定的端口 源码如下: #/bin/bash #该脚本用于对特定目标主机 ...
- 树莓派(Raspberry Pi)使用Shell编写的极简Service
树莓派(Raspberry Pi)运行的系统是基于Debian的,不仅可以运行Shell,还支持systemd和docker,可以编写一个简单的服务,让其在启动时运行,执行一些自动化的操作.这里在Ra ...
- Shell编写8点建议
这八个建议,来源于键者几年来编写 shell 脚本的一些经验和教训.事实上开始写的时候还不止这几条,后来思索再三,去掉几条无关痛痒的,最后剩下八条.毫不夸张地说,每条都是精挑细选的,虽然有几点算是老生 ...
- linux 下shell 编写脚本
linux 下shell 编写脚本: 1.程序结构练习:编写一个脚本,给定一个正整数,计算出这个数所有位的数字之和. 例如:程序给定输入123,那么应该返回1+2+3=6. 2.程序结构练习:编写一个 ...
- shell编写一个批量添加用户脚本
shell编写一个批量添加用户脚本 5.1问题 本例要求在虚拟机server0上创建/roo ...
- shell编写一个判断脚本
shell编写一个判断脚本 4.1问题 本例要求在虚拟机server0上创建/roo ...
- shell编写mysql备份工具
如需转载,请经本人同意. 这是之前写的一个备份脚本,调用的备份工具是xtrabackup 编写思路是:每周一全备份,备份后提取lSN号,对备份文件进行压缩,其余时候在LSN的基础上进行增量备份,并对3 ...
- IBM AIX Shell编写遭遇错误一2
在IBM AIX 5.3平台上,编写一个shell的时候遇到几个错误. 0. exp: 0403-027 The parameter list is too long 看这个提示是说命令行长度太长了, ...
随机推荐
- pandas教程01: pandas的安装和基本操作
pandas是Python中常用的数据处理库,主要用来处理表格数据,类似于下面这种: 好好干文化有限公司员工薪资表 姓名 年龄 性别 年薪 奖金 久九刘 35 男 182600 42000 傅儿待 ...
- 2.2 实验:UPX脱壳--《恶意代码分析实战》
Lab01-02.exe 实验内容: 1.将文件上传到http://www.VirusTotal.com 进行分析并查看报告.文件匹配到了已有的反病毒软件特征吗? 2.是否有这个文件被加壳或混淆的任何 ...
- CF1861
只做出 A,身败名裂 A 显然不管怎么排,13,31 总有一个会出现,看看哪个出现. B 给定两个 01 串,每次可以挑一个串的一个子串,要求两端相同,然后把这个子串全部变得和两端相同. 问经过若干次 ...
- NC23803 DongDong认亲戚
题目链接 题目 题目描述 DongDong每年过春节都要回到老家探亲,然而DongDong记性并不好,没法想起谁是谁的亲戚(定义:若A和B是亲戚,B和C是亲戚,那么A和C也是亲戚),她只好求助于会编程 ...
- Python Print 显示颜色
1.顺序:显示方式,前景颜色,背景颜色 2.顺序非固定,但尽量按默认书写方式 3.也可以在input中输出使用 4.格式: print('\033[显示方式:前景颜色:背景颜色m .......... ...
- 文心一言 VS 讯飞星火 VS chatgpt (199)-- 算法导论15.2 1题
一.用go语言,对矩阵规模序列(5,10,3,12,5,50,6),求矩阵链最优括号化方案. 文心一言,代码正常运行: 在Go语言中,为了找到矩阵链乘法的最优括号化方案,我们通常会使用动态规划(Dyn ...
- win32 - 基于hwnd获取进程名字(GetModuleFileNameEx)
#include <Windows.h> #include <psapi.h> int main() { DWORD process_ID = 0; WCHAR process ...
- 【Android逆向】frida 破解 滚动的天空
1. apk 安装到手机中 2. 玩十次之后,会提示 充值 3. adb shell dumpsys window | grep mCurrentFocus 查看一些当前activity是哪一个 是 ...
- node版本管理工具nvm的安装及使用
一.什么是nvm nvm是一个node版本管理工具. 由于不同项目依赖的node版本可能不同,所以在维护多个项目时通常需要使用不同的node版本,这时候用nvm来切换不同的node版本就很方便. 官方 ...
- 【LeetCode动态规划#01】动规入门:求斐波那契数 + 爬楼梯 + 最小代价爬楼梯(熟悉解题方法论)
斐波那契数 力扣题目链接(opens new window) 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 .该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和.也就 ...