文档章节

shell scripts 知识点汇总

Adel
 Adel
发布于 2015/12/30 14:11
字数 639
阅读 53
收藏 3

「深度学习福利」大神带你进阶工程师,立即查看>>>

  • scripts 的执行

基本上,一个 script 被执行的时候, bash 会据以判断执行的步骤为:

  1. 如果读取到一个 Enter 符号( CR ),就尝试开始执行该行命令;

  2. 如同前面 bash command 提到的,指令间的多个空白会被忽略掉;

  3. 而空白行也将被忽略掉!,并且 tab 也是不会被理会的!

  4. 至于如果一行的内容太多,则可以使用 \ 来延伸至下一行;

  5. 此外,使用最多的 # 可做为批注!任何加在 # 后面的字,将全部被视为批注文字而被忽略!

然后,在撰写一个 scripts 的时候,最好养成良好的习惯:

  1. 先宣告使用的 shell 为何?(特别留意这一点,在某些状况中,例如 /etc/crontab 情况下,如果没有宣告使用的 shell ,常常会出现错误讯息而导致 scripts 无法被执行呦!)

  2. 注明该 script 的内容功能、版本信息、作者、建文件日期等等

  3. 每一个大步骤的主要功能(也顺便提供自己未来修改之用!)

那么 scripts 这个档案要如何来执行呢?执行的方法有两种:

  • 一个是将该档案改成可以执行的属性,如chmod 755 scripts.file ,然后执行该档案;

  • 另一种则是直接以 sh 这个执行档来执行 script 的内容,如 sh scripts.file

大致上就是这样啦!

  • 卷标与运算符号:declare

[test @test  test]# declare [-afirx]
参数说明:
-a  :定义为数组 array
-f  :定义为函数 function 
-i  :定义为整数 integer
-r  :定义为『只读』
-x  :定义为透过环境输出变量

  • script 的参数的代号 

[root @test  test]# myscript opt1 opt2 opt3 opt4
         $0  $1 $2 $3  $4
  • 条件判断二:使用 case ...esac 的方式

case 种类方式(string) in         < ==开始阶段,那个种类方式可分成两种类型,通常使用 $1 这一种直接下达类型!
    种类方式一)
       程序执行段
       ;;                     <==种类方式一的结束符号!
    种类方式二)
       程序执行段
       ;;
    *)
       echo "Usage: {种类方式一|种类方式二}"    < ==列出可以利用的参数值!
       exit 1
esac                         <==这个 case 的设定结束处!
  • Script如何debug:

[test @test  test]# sh [-nvx] scripts
-n :不要执行 scripts ,查询 scripts 内的语法,若有错误则予以列出!
-v :在执行 scripts 之前,先将 scripts 的内容显示在屏幕上;
-x :将有使用到的 scripts 内容显示在屏幕上,与 -v 稍微不同!

Adel
粉丝 10
博文 71
码字总数 61751
作品 0
海淀
程序员
私信 提问
加载中
请先登录后再评论。
开源数据访问组件--Smark.Data

Smark.Data是基于Ado.net实现的数据访问组件,提供基于强类型的查询表达式进行灵活的数据查询,统计,修改和删除等操作;采用基于条件驱动的操作模式,使数据操作更简单轻松;内部通过标准SQL...

泥水佬
2013/03/12
2.6K
0
视图各种动画效果

自定义视图变换的各种动画效果。其中包括:CALayer、UIViewAnimation、CATransition、CABasicAnimation、CAKeyframeAnimation、CAAnimationGroup、CATransform3D各个知识点实现的动画效果,实...

匿名
2013/03/21
1.4K
0
Base 参数解析库--bash argsparse

bash argsparse 是一个 Bash 的高级参数解析库。 Its purpose is to replace the option parsing and usage describing functions commonly rewritten in all scripts. Its features includ......

匿名
2013/03/27
380
0
Python开发者社区整站源码--Pythoner

pythoner.net 整站源代码 依赖模块 Django 1.4.2 PIL DjangoVerifyCode 0.2.2 开发环境配置 运行scripts目录下的setupenv.sh文件,将会自动安装配置所需环境 设置本地环境变量:export env=D...

~T.y~
2013/04/10
3.2K
0
UTF-8字符串生成工具--utfout

utfout是一个命令行工具,可以通过多种多样的方式产生UTF - 8(Unicode)字符串并且直接将它们用于标准输出,标准错误,或直接传递到终端而不需要shell的支持。字符串可以是重复,推迟,随机生成的,...

书一
2012/11/09
718
0

没有更多内容

加载失败,请刷新页面

加载更多

创建myBatis项目

1、简介 1.1、核心组件 SqlSessionFactoryBuilder(构造器):根据配置信息或者代码生成SqlSessionFactory SqlSessionFactory(工厂接口):依靠工厂来生成SqlSession(会话) SqlSession(会话): ...

执键走天涯
23分钟前
5
0
Tomcat集群带来的问题和解决思路

Tomcat集群 存在问题 解决方案 基于Redis+Cookie+Jackson+Filter的原生解决集群Session共享问题 使用Spring Session零侵入解决Session共享 单点登录实现 Redis构建Session服务器 使用Redis+C...

code-ortaerc
43分钟前
17
0
小福利

点击有福利 本文分享自微信公众号 - V5codings(gh_c1ec2d16ec93)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。...

V5codings
2019/11/19
0
0
ubuntu 安装 oh my zsh

https://github.com/ohmyzsh/ohmyzsh https://ohmyz.sh/#install 安装 sudo apt-get install zsh -ysh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh ......

阿豪boy
55分钟前
7
0
自然语言处理中的语言模型简介

作者|Devyanshu Shukla 编译|Flin 来源|medium 在这篇文章中,我们将讨论关于语言模型(LM)的所有内容 什么是LM LM的应用 如何生成LM LM的评估 介绍 NLP中的语言模型是计算句子(单词序列)...

人工智能遇见磐创
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部