注意不能有控制,指令之间

【1】shell脚本的基础知识
(1)shell脚本的本质
编译型语言
解释型语言
shell脚本语言是解释型语言
shell脚本的本质
shell命令的有序集合
(2)shell 编程的基本过程
基本过程分为三步:
step1. 建立 shell 文件
包含任意多行操作系统命令或shell命令的文本文件;
step2. 赋予shell文件执行权限
用chmod命令修改权限;
step3. 执行shell文件
直接在命令行上调用shell程序.
(3)实例
step1: 建立shell文件 (可用任何建立文本文件的方法)
$ cat prog1.sh
date
Step2: 赋予执行权限: (初始文本文件无执行权限)
$ chmod 740 prog1.sh
Step3: 执行该shell程序
$ prog1.sh
prog1.sh: not found
(shell在标准搜索路径中找不到prog1.sh)
Step4: 指定路径或修改环境变量PATH后执行shell程序
$ ./prog1.sh
2009年 12月 16日 星期二 14:52:57 CST

  

变量是用$来定义,注意不能有空格

  

【2】shell变量
(1)shell变量
shell允许用户建立变量存储数据,但不支持数据类型(整型、字符、浮点型),
将任何赋给变量的值都解释为一串字符
Variable=value
a. count=1
b. echo $count
c. DATE=`date`
d. echo $DATE
(2) Bourne Shell有如下四种变量:
1) 用户自定义变量
2) 位置变量即命令行参数
3) 预定义变量
4) 环境变量
(3) 用户自定义变量
1) 在shell编程中通常使用全大写变量,方便识别
$ COUNT=1
2) 变量的调用:在变量前加$
$ echo $HOME
3) Linux Shell/bash从右向左赋值
$Y=y
$ X=$Y
$ echo $X
y
4) 使用unset命令删除变量的赋值
$ Z=hello
$ echo $Z
hello
$ unset Z
$ echo $Z
(4) 位置变量
$0 与键入的命令行一样,包含脚本文件名
$1,$2,……$9 分别包含第一个到第九个命令行参数
$# 包含命令行参数的个数
$@ 包含所有命令行参数:“$1,$2,……$9”
$? 包含前一个命令的退出状态
$* 包含所有命令行参数:“$1,$2,……$9”
$$ 包含正在执行进程的ID号
(5) 常用shell环境变量
HOME: /etc/passwd文件中列出的用户主目录
IFS:Internal Field Separator, 默认为空格,tab及换行符
PATH :shell搜索路径
PS1,PS2:默认提示符($)及换行提示符(>)
TERM:终端类型,常用的有vt100,ansi,vt200,xterm等

  

count=1
echo $count count='a'
echo $count count="aaaa"
echo $count count=1.1
echo $count DATE='date'
echo $DATE TEST='ifconfig'
echo $TEST echo "num:$#" #打印出来参数个数$#
echo "all paras:$*"打印出来参数有哪些 echo "all paras:$@"
echo "\$0 is $0"
echo "\$1 is $1"
echo "\$2 is $2"
echo "\$3 is $3"
echo "\$4 is $4"
echo "\$5 is $5"
echo "\$6 is $6"
echo "\$7 is $7"
echo "\$8 is $8"
echo "\$9 is $9"
echo "\$10 is ${10}" #注意当有2个的时候,需要有大括号
echo "\$11 is ${11}"

  

最新文章

  1. jQuery-1.9.1源码分析系列(十六)ajax——jsonp原理
  2. final评价Ⅱ
  3. 在IIS6上部署MVC站点,Nhiernate数据库底层
  4. BarManager.ContextMenu
  5. 用shell脚本批量修改文件后缀名
  6. oracle 数据泵 详解
  7. 放松时刻——C#分割字符串
  8. HttpModule和Http Handler (比较与区别)
  9. 如何查看系统内置的shell命令及帮助信息
  10. 1320. Graph Decomposition
  11. [C语言 - 11] 语言编译执行
  12. 在浏览器中使用jquery取得iframe中页面中指定元素的值的不同
  13. delete和delete[]
  14. WPF自定义控件与样式-自定义按钮(Button)
  15. Xcode中为何要为设置bundle和App分别设置两份一样的图片资源
  16. Chipmunk碰撞回调短时间内重入的解决办法
  17. Python:运算类内建函数列举
  18. SpringMVC: web.xml中声明DispatcherServlet时一定要添加load-on-startup标签
  19. mysql之 openark-kit online ddl
  20. [转]web打印实现方案 Lodop6.034 使用方法总结

热门文章

  1. 状压dp学习笔记(紫例题集)
  2. 从0到1使用Kubernetes系列(四):搭建第一个应用程序
  3. TensorFlow从入门到入坑(2)
  4. 深入理解 Linux的进程,线程,PID,LWP,TID,TGID
  5. jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
  6. 整数中1出现的次数 牛客网 剑指Offer
  7. 前端面试手写代码——模拟实现new运算符
  8. Android WebView 实现文件选择、拍照、录制视频、录音
  9. 【数据结构&算法】08-栈概念&源码
  10. php swoft redis 发布和订阅