Linux shell实例精讲 (一)
1.
shopt bash2.0以上新的命令,功能和set类似。
给变量赋值时等号两边不可留空格。
环境变量一般使用大写。
2.
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 脚本运行的当前进程ID号
$! 后台运行的最后一个进程的进程ID号
$@ 传递到脚本的参数列表,并在引号中返回每个参数
$- 显示shell使用的当前选项,与set命令功能相同
$? 显示最后命令的退出状态,0表示没有错误,其他表示有错误
3.
echo 命令中使用" "无法直接识别转义字符,必须使用选项 -e,但可以使用$和`引用变量和命令替换。
$[] 告诉shell对方括号中表达式求值 $[a+b],如$[1+8]
4.
tee
把输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中
tee -a file -----a表示在文件末尾追加,不要-a则覆盖
该命令一般与管道合用
5.
command>filename>&1 ---把标准输出和标准错误重定向
command<<delimiter ---输入直到delimiter分解符
eg:
sqlplus / as sysdba <<EOF
show parameters
exit
EOF
6.命令替换有两种方式,老的korn风格的`linux command`和新的bash风格$(linux command)
7.定义数组
declare -a arry=(a1 a2 a3 ...)
echo ${a[n]}
8.read使用
read -a arryname ---读入为数组
read -p prompt ----输出提示,并把提示后的输入存到REPLY内建变量中
[test@szbirdora 1]$ read -p "Enter your name:"
Enter your name:jack
[test@szbirdora 1]$ echo $REPLY
jack
[test@szbirdora 1]$ read -a name
jack tom susan
[test@szbirdora 1]$ echo ${name[2]}
susan
[test@szbirdora 1]$ echo ${name[0]}
jack
9.多进制整型变量表示
declare -i number
number=base#number_in_the_base
如:
declare -i number
number=2#101
number=16#A9
10.条件语句if then fi中if后的表达式可以是条件表达式(布尔表达式)或一组命令,如果是布尔表达式则表达式为真执行then后的语句,如果是命令组,则命令组状态($?)为0执行then后面的语句。但如果是C shell则if后只能跟布尔表达式。
11.here文档和case建立菜单:
eg.
echo "Select a terminal type:"
cat <<EOF
1) linux
2)xterm
3)sun
EOF
read choice
case $choice in
1)TERM=linux
export TERM
;;
2)TERM=xterm
export TERM
;;
3)TERM=sun
export TERM
;;
*) echo "please select correct chioce,ths!"
;;
esac
echo "TERM is $TERM"
12.循环比较:
for variable in wordlist;do ---从文件或列表中给定的值循环
while command;do ----当command的返回值为0时做循环
until command;do ----当command的返回值不为0时作循环
select循环菜单
用select建立菜单,需要用PS3来提示用户输入,输入保存在REPLY内建变量中,REPLY的值与内建菜单关联。在构建菜单过程中可以使用COLUMNS和LINES两个变量,COLUMNS决定菜单的列宽度,LINES决定可显示的行数。select和case命令联用可以有效的构造循环菜单。
eg
#!/bin/bash
#Author: hijack
#Usage:Menu
t=0
j=0
d=0
PS3="Please choose one of the three boys or quit:"
select choice in Tom Jack David Quit
do
case $choice in
Tom)
t=$t+1
if (($t==5));then
echo "Tom win"
break
fi
;;
Jack)
j=$j+1
if (($j==5));then
echo "Jack win"
break
fi
;;
David)
d=$d+1
if (($d==5));then
echo "David win"
break
fi
;;
Quit) exit 0;;
*) echo "$REPLY is invalide choice" 1>&2
echo "Try again!"
;;
esac
done
[test@szbirdora 1]$ sh menu
1) Tom
2) Jack
3) David
4) Quit
Please choose one of the three boys or quit:1
Please choose one of the three boys or quit:2
Please choose one of the three boys or quit:1
Please choose one of the three boys or quit:1
Please choose one of the three boys or quit:1
Please choose one of the three boys or quit:1
Tom win
P328
转载于:https://blog.51cto.com/hky008/475513
Linux shell实例精讲 (一)相关推荐
- Linux Shell实例精讲学习笔记
第一章:shell基础 ●umask --查看当前用户创建文件或文件夹时的默认权限 eg: [test@szbirdora 1]$umask 0002 [test@szbirdora 1]$ls ...
- 触发器实例精讲-志在必得
SQL触发器实例精讲,必看必会 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程. 常见的触发器有 ...
- 《Oracle PL/SQL实例精讲》学习笔记1——数据准备
前言: 古人言,"业精于勤荒于嬉,行成于思毁于随".对于自己所从事的工作,若使理论知识和实践经验相辅相成,则可使自己的业务能力日益增长,事半功倍.反之,亦然. 前几天,接到一个需求 ...
- 经典好书:DSP嵌入式常用模块与综合系统设计实例精讲
书名:DSP嵌入式常用模块与综合系统设计实例精讲 作者:刘向宇 副书名:DSP嵌入式常用模块与综合系统设计实例精讲 出版日期:2009-07-01 出版社:电子工业出版社 页数:406 ISBN:97 ...
- UG NX 8.5有限元分析入门与实例精讲(PPT、视频、模型)
<UG NX 8.5有限元分析入门与实例精讲>介绍了在典型工程实例中采用有限元进行分析的解题思路.操作步骤和经验技巧,内容包括零件和组件的有限元分析.轴对称和对称约束分析.多载荷条件静力学 ...
- 视频教程-C++游戏编程实例精讲--3D射击游戏作弊-C/C++
C++游戏编程实例精讲--3D射击游戏作弊 80后,游戏作弊工程师,从事C++开发14年,擅长语言:C,C++ 领域:服务器开发,精通MFC,STL,Boost,熟悉TCP/IP协议,熟练运用IOCP ...
- Linux 引导过程精讲
Linux 引导过程内幕 从主引导记录到第一个用户空间应用程序的指导 引导 Linux 系统的过程包括很多阶段.不管您是引导一个标准的 x86 桌面系统,还是引导一台嵌入式的 PowerPC 机器,很 ...
- msp430单片机c语言应用程序,MSP430单片机C语言应用程序设计实例精讲
本书首先介绍了C语言的基本知识,使读者能使用C语言进行程序设计:然后介绍了30个开发例子.全书主要通过实例的形式来介绍MSP430单片机在不同领域中的应用,从而使读者掌握MSP430单片机开发的流程. ...
- 光电耦合器型号(FOD3120,TLP350,TLP250)介绍应用实例精讲
FOD3120,TLP350,TLP250这三款是用来进行IGBT栅级驱动和POWER MOSFET栅极驱动的8 PIN DIP封装的光电耦合器,其中FOD3120,TLP350的输出峰值电流IO = ...
最新文章
- 五分钟让你搞懂什么是“构造方法”
- java主窗体设计代码_java窗体设计+GUI经典代码全放送
- 5G NGC — UDR 统一数据存储库,UDSF 非结构化数据存储功能
- 如何ping别人的计算机名来获取IP?
- 数据分析写作——程序员的另外一种输出
- 孙鑫-MFC笔记九--菜单编程
- Python资源下载
- 漫游配置文件修改为强制配置文件|ntuser.dat ntuser.man
- 重装系统后电脑只剩下C盘怎么办?怎样给电脑磁盘分区增加盘符?
- 中国工程院院士张尧学:透明计算/云计算操作系统
- 无法格式化sd卡怎么办 sd卡无法格式化怎么弄
- aht10温湿度传感器特点及使用介绍
- 梦三国测试服显示连接服务器失败,《梦三国》梦三国服务器未连接攻略
- CryEngine 动态添加模型
- PDF如何裁剪页面,PDF裁剪页面的方法
- Redis原生SET、SETNX、SETEX方法以及RedisTemplate的方法 + 分布式锁的实现
- python怎么写代码求年华收益率_python计算年收益
- mysql介绍(myisam)
- 一战中科大软件学院399复试被刷失败经验贴......春招中
- 芯片flash保护(解锁)
热门文章
- php 微信支付 ca证书,微信公众号红包接口开发PHP开发 CA证书出错,请登陆微信支付商户平台下载证书...
- oracle 提取连续数字,oracle 得到连续不重复的数字序列
- 树莓派外接显示器黑屏_解决树莓派使用HDMI-VGA转换器黑屏的方案
- JAVA输出希腊union_Java Geometry.union方法代码示例
- php 自减函数,Thinkphp中某个字段值从增或自减函数
- python单元格内换行_Python Pandas可防止单元格中的换行符
- 揪出造成失败用户登录的应用主机名、数据库用户信息
- mysql防止误操作之prompt命令提示符
- pxe安装linux dhcp失败,利用PXE自动化安装Centos时启动DHCP服务时遇到错误,请求大佬指教...
- math.hypot java_Java Math hypot()用法及代码示例