SHELL 的一些简单的用法
来源:互联网 发布:ae软件图标 编辑:程序博客网 时间:2024/06/03 18:08
SHELL 的定义:如果你有一系列经常使用的Linux命令,你可以把他们存储在一个文件中。Shell可以读取这个文件并执行其中的命令。这样的文件被称为脚本文件。
SHELL 的结构:shell 类型
文件格式:abc.sh
函数
主过程
一般模板
#!/bin/bash shell类型#a simple shell script example#a functionsayhello() 函数{ echo "Enter Your name:" read name 读取来自键盘输入的变量 echo "Hello $name"}echo "programme starts here..." 主过程sayhelloecho "programme ends."
特殊符号:
1、注释符#
除了#!/bin/bash里的#特殊
2、美元符
3、、单引号
被引起的字符全部做普通字符,即全部原样
echo ‘my $SHELL’
4、双引号
引号内的内容,除$、转义符\、倒引号这三个保留特殊功能,其他字符均做普通字符。
pwd`即pwd命令的执行结果
5、倒引号(数字1键旁边的那个键)
引号内的字符串当做shell命令行解释执行,得到的结果取代整个倒引号括起来的部分。
$LOGNAME 系统变量
#!/bin/bashecho "abcdefg........"syshellosyshello(){ echo "enter function....." ls -l echo "over function....."}echo "start......."sy```shelloecho "exit......"
常用环境变量
1、HOME变量
Linux系统中的每个用户都有一个相关的称作HOME的目录。
2、PATH序的搜索
包含一列用冒号定界的目录的路径名字,便于可执行程序的搜索。
部分内部变量是: $#
——传送给shell程序的位置参数的数量 $?
——最后命令的完成码或者在shell程序内部执行的shell程序(返回值) $0
——shell程序的名称 $*
——调用shell程序时所传送的全部参数的单字符串, “参数1”“参数2”…形式保存的参数
$n
———-第n个参数
条件判断命令:
test n1 -参数 n2(或 –参数 表达式)真返回0,假返回1。
参数:
-lt 小于
-le小于等于
-gt 大于
-ge 大于等于
-eq 等于
-ne 不等于
#!/bin/bashif [ $# -ne 1 ]then echo "Usage:$0 filename" exit 1fi<< Aif test -f $1then echo "file exist!"else touch $1 echo "create file:$1"fiAtest -f $1 && echo "file exist!"test -f $1 || touch $1
shell运算符和C语言基本类似,也有分支、循环流程控制。
简单举例
后面例子涉及的命令:
seq命令:产生数字序列
比如 seq 100 400
expr命令:对表达式求值
[]直接求值命令:对被括起来的表达式求值
循环语句:
#!/bin/bash<< Afor i in asn 12 dd 56464sfs 646g do echo $idoneA<< Bs=0for i in 1 2 3 4 5 6 7 8 9 10do s=$((s+i))doneecho $sBs=0for i in `seq 1 10`do s=$((s+i))doneecho $s
#!/bin/bashs=0i=0while [ $i -le 100 ]do s=$((s+i)) i=$((i+1))doneecho $s
**文件测试
-f 存在且是普通文件
-d 存在且是目录
-s 存在且字节数大于0
-r 存在且可读
-w 存在且可写
-x 存在且可执行
如:test -d “mydoc”
判断mydoc是否是目录
字符串测试
test s 字符串s非空
test s1=s2 字符串s1等于s2
test s1!=s2 字符串s1不等于s2
test -z s 字符串长=0,即为空串
test -n s 字符串长>0
=: 等于则为真
!=:不相等则为真
-z字符串:字符串长度为零则为真
-n字符串:字符串长度不为零则为真**n字符串:字符串长度不为零则为真
几个 SHELL 的应用
1,编写一个名为iffile程序,它执行时判断/bin目录下date文件是否存在?
filename=/bin/dateif (test -f "$filename")then echo "exist"fi
2.编写一个名为menu的程序,实现简单的弹出式菜单功能,用户能根据显示的菜单项从键盘选择执行对应的命令。
#!/bin/bashclearecho " ---------MENU---------"echoecho "1.Find files modified in last 24 hours"echo "2.The free disk space"echo "3.Space consumed by this user"echo "4.Exit"echoecho -n " Select:"read choicecase $choice in 1)find $HOME -mtime -1 -print;; 2)df;; 3)du -s $HOME;; 4)exit;; *)echo "Invalid option"esac
3.编写一个名为greet的问候程序,执行时能根据系统当前的时间向用户输出问候信息。设从半夜到中午为早晨,中午到下午六点为下午,下午六点到半夜为晚上。
#! /bin/bashhour=`date | cut -c 10-11`if test "$hour" -ge 0 "$hour" -lt 12;then echo "Good morning!"elif test "$hour" -ge 12 -a "$hour" -le 18;then echo "Good afternoon!"else echo "Good evening!"fi
- SHELL 的一些简单的用法
- adb shell的一些用法
- 关于shell的一些用法
- Shell的一些关键字用法
- shell expect的简单用法
- shell expect的简单用法
- linux shell$()的简单用法
- shell expect的简单用法
- valarray的一些简单用法
- Substring 的一些简单用法
- pdo的一些简单用法
- 一些简单的js用法
- vc的一些简单用法
- html的一些简单用法
- 容器的一些简单用法
- git的一些简单用法
- Easyui的一些简单用法
- WebView的一些简单用法
- BroadCastReceiver详解
- 1017. A除以B (20)
- IPC机制
- OSI七层与TCP/IP五层网络架构详解
- Gold Balanced Lineup POJ
- SHELL 的一些简单的用法
- Web前端-HeadFirst-笔记-Ch14-表单
- 633. Sum of Square Numbers
- JDBC之DatabaseMetaData
- ACM练习题(day001)
- 深入c语言_作用域
- 712总结
- 函数组织方式
- 一个合格的程序员应该读的30本书