1.Shell脚本介绍

基本介绍:

shell脚本是一个可执行的纯文本文件,由多个shell命令组成。

命令的执行是从上而下,从左而右的分析和执行

命令,参数间的多个空白也会被忽略

#是注释

#!用于指定使用的shell名称  如 bash csh等

shell脚本一般以.sh为后缀名。

内部命令与外部命令

内部命令:shell是通过执行自己代码中相应的部分来完成的。

外部命令:一些二进制的可执行文件或者shell脚本

2.   通过type命令可以查看命令的类型

[dmtsai@study ~]$ type [-tpa] name
选项与参数:
:不加任何选项与参数时,type 会显示出name 是外部指令还是bash 内建指令
-t :当加入-t 参数时,type 会将name 以底下这些字眼显示出他的意义:
file :表示为外部指令;
alias :表示该指令为命令别名所设定的名称;
builtin :表示该指令为bash 内建的指令功能;
-p :如果后面接的name 为外部指令时,才会显示完整档名;
-a :会由PATH 变数定义的路径中,将所有含name 的指令都列出来,包含alias 范例一:查询一下ls这个指令是否为bash内建?
[dmtsai@study ~]$ type ls
ls is aliased to `ls --color=auto' <==未加任何参数,列出ls的最主要使用情况
[dmtsai@study ~]$ type -t ls
alias < ==仅列出ls执行时的依据
[dmtsai@study ~]$ type -a ls
ls is aliased to `ls --color=auto' <==最先使用aliase
ls is /usr/bin/ls <= =还有找到外部指令在/bin/ls 范例二:那么cd呢?
[dmtsai@study ~]$ type cd
cd is a shell builtin <==看到了吗?cd是shell内建指令

3.变量    bash shell的变量功能

❖变量是bash shell中重要的概念和功能,类似于C/Java语言中的变量。
❖需要掌握的变量相关操作命令:

1.变量的显示与设置:echo、unset

输出变量值:echo  $PATH

设置变量的语法是  : a=b

取消变量的语法是: unset a

2.环境变量的相关操作:env、export

使用env命令查看环境变量

❖使用set命令查看所有变量:包括环境变量和自定义变量

3. 环境变量和自定义变量的主要区别是作用域的不同。

❖环境变量在整个bash运行过程中均有效,而自定义变量只在当前进程中有效。子进程会继承父进程的环境变量,不会继承自定义变量。
❖使用export命令可将自定义变量转化为环境变量。

3.变量的输入:read

从键盘读取变量值

❖使用read命令从键盘读取变量值,和用户交互,在shell script经常使用。
❖read语法为:
[dmtsai@study ~]$ read [-pt] variable
选项与参数:
-p :后面可以接提示字元!
-t :后面可以接等待的『秒数!』这个比较有趣~不会一直等待使用者啦! 范例一:让使用者由键盘输入一内容,将该内容变成名为atest的变数
[dmtsai@study ~]$ read atest
This is a test <==此时游标会等待你输入!请输入左侧文字看看
[dmtsai@study ~]$ echo ${atest}
This is a test <==你刚刚输入的资料已经变成一个变数内容! 范例二:提示使用者30秒内输入自己的大名,将该输入字串作为名为named的变数内容
[dmtsai@study ~]$ read -p "Please keyin your name: " -t 30 named
Please keyin your name: VBird Tsai <==注意看,会有提示字元喔!
[dmtsai@study ~]$ echo ${named}
VBird Tsai <==输入的资料又变成一个变数的内容了!

  

4.数组与声明:declare/typeset、

[dmtsai@study ~]$ declare [-aixr] variable
选项与参数:
-a :将后面名为variable 的变数定义成为数组(array) 类型
-i :将后面名为variable 的变数定义成为整数数字(integer) 类型
-x :用法与export 一样,就是将后面的variable变成环境变数;
-r :将变数设定成为readonly 类型,该变数不可被更改内容,也不能unset 范例一:让变数sum进行100+300+50的加总结果
[dmtsai@study ~]$ sum=100+300+50
[dmtsai@study ~]$ echo ${sum}
100+300+50 <==咦!怎么没有帮我计算加总?因为这是文字型态的变数属性啊!
[dmtsai@study ~]$ declare -i sum=100+300+50
[dmtsai@study ~]$ echo ${sum}
450

  

Linux05--Shell程序设计01的更多相关文章

  1. Linux 的使用基础---Shell程序设计

    Shell是Linux系统中的一个重要的层次,它是用户与系统交互作用的界面.Shell除了作为命令解释程序以外,还是一种高级程序设计语言.利用Shell程序设计语言可以编写出功能很强.但代码简单的程序 ...

  2. Linux程序设计之shell程序设计

    看了<linux程序设计(第4版)>(作者:Neil Matthew ,Richard Stones ,陈建 ,宋健建译).做个笔记,以备后面查看. 首先,清楚几个概念. shell编程属 ...

  3. 01 C语言程序设计--01 C语言基础--第1章 C语言概述&第2章 GCC和GDB

    走进嵌入式开发的世界,企业级项目课程让你达到企业嵌入式应用开发要求.名师在线答疑,解决疑难.科学评测体系,系统评估学习.核心项目实........ 30 门课程 241小时12分钟 824 人学习 学 ...

  4. Linux shell 程序设计

    shell 程序设计 主要的学习内容包含基本思路,语法:变量.条件判断和程序控制,命令列表,函数,命令及执行,调试,grep命令和正则表达式,find命令 什么是shell 适用编写执行相对简单任务的 ...

  5. shell程序设计

    1.shell脚本的基本概念: (1)Shell执行的是称为shell程序,这些程序通常被称为脚本. (2)Shell是一个用户和系统间接口的程序,它允许用户向操作系统输入需要执行的命令. (3)sh ...

  6. 【转】shell 教程——01 Shell简介:什么是Shell,Shell命令的两种执行方式

    Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释 ...

  7. Linux程序设计(二)shell程序设计

    1. 管道和重定向 文件描述符0:一个程序的标准输入 文件描述符1:标准输出 文件描述符2:标准错误输出 >操作符:把标准输出重定向到一个文件. >>操作符:将输出内容附加到一个文件 ...

  8. shell程序设计(转)

    1.shell脚本的基本概念: (1)Shell执行的是称为shell程序,这些程序通常被称为脚本. (2)Shell是一个用户和系统间接口的程序,它允许用户向操作系统输入需要执行的命令. (3)sh ...

  9. 【Shell编程】Shell程序设计

    1.Shell简介   作为Linux灵感来源的Unix系统最初是没有图形化界面的,所有的任务都是通过命令行来实现的.因此,Unix的命令行系统得到了很大的发展,逐步成为一个功能强大的系统.   Sh ...

  10. Linux命令(十)——Shell程序设计一(变量与操作符)

    Shell是linux系统中用户和系统交互的接口,它除了作为命令解释器以外,还是一种高级程序设计语言.在前面介绍的linux命令中,Shell都作为命令解释器出现.下面分两节简单介绍脚本程序设计中的语 ...

随机推荐

  1. [ofbiz]entitymode中类型的对照关系

    在实体数据结构的时候,习惯于数据库的设计模式,int,varchar等各种类型,但是在entitymode中不是直接使用数据库的类型模式,而是自己定义了一套数据类型(type). 如何找到两者之间的对 ...

  2. Hadoop配置文件-mapred-site.xml

    name value Description hadoop.job.history.location   job历史文件保存路径,无可配置参数,也不用写在配置文件里,默认在logs的history文件 ...

  3. synchronized 方式实现监控器中数据成员的同步

    要对监控器中的数据成员进行访问,在考虑到多线程的情况下必须使用同步代码块来改变监控器中数据成员的值: synchronized (mAdapterLocking) { if (pEvery == 0) ...

  4. 向Oracle数据库中CLOB插入数据报错问题

    今天在项目中向数据库的CLOB属性插入一段篇文章(1000~2000)字就会报一个字符串过长的错误. 网上说用流来处理,没有这么做.这像是一个Bug,只要把插入的数据,默认扩充到2000以上就ok了. ...

  5. css3弹性盒模型(Flexbox)

    Flexbox是布局模块,而不是一个简单的属性,它包含父元素和子元素的属性. Flexbox布局的主体思想是似的元素可以改变大小以适应可用空间,当可用空间变大,Flex元素将伸展大小以填充可用空间,当 ...

  6. 七牛云Fetch第三方资源并转码(PHP版)

    七牛云的图片加速一直在用,好用没得说,最近项目需要做个微信端录音,然后上传,别人试听的功能,录音和上传用的都是微信的接口,有文档,比较方便,但是上传后,微信只给保存3天,所以就下载到了七牛,也就用到了 ...

  7. eclipse 常用的一些设置

    1.行长度设置 http://blog.csdn.net/janronehoo/article/details/10047937 2.字体 windows -> preference -> ...

  8. Android学习笔记——Activity的启动和创建

    http://www.cnblogs.com/bastard/archive/2012/04/07/2436262.html Android Activity学习笔记——Activity的启动和创建 ...

  9. ui原则

    http://www.niushe.com/news/show-3683.html 设计师Joshua Porter发表了一篇文章——<Principles of User Interface ...

  10. 【LeetCode练习题】Climbing Stairs

    Climbing Stairs You are climbing a stair case. It takes n steps to reach to the top. Each time you c ...