1. 管道和重定向

文件描述符0:一个程序的标准输入

文件描述符1:标准输出

文件描述符2:标准错误输出

>操作符:把标准输出重定向到一个文件。

>>操作符:将输出内容附加到一个文件中。

|操作符:连接进程。

2. 作为程序设计语言的shell

2.1 创建脚本

注释以#符号开始。

#!字符告诉系统同一行上紧跟在它后面的寻附上参数是用来执行本文件的程序。

2.2 把脚本设置为可执行

chmod +x first

3. shell的语法

3.1 变量

默认情况下,所有变量被看作字符串并以字符串来存储。如果字符串里包含空格,必须用引号把它们括起来。

在shell中,通过在变量名前加 一个$符号来访问它的内容。当为变量赋值时,只需变量名。

zhangxin@zhangxin-VirtualBox:~/mypro$ salutation=hello
zhangxin@zhangxin-VirtualBox:~/mypro$ echo $salutation
hello
zhangxin@zhangxin-VirtualBox:~/mypro$ salutation = 'hello world'
salutation:未找到命令
zhangxin@zhangxin-VirtualBox:~/mypro$ salutation='hello world'
zhangxin@zhangxin-VirtualBox:~/mypro$ echo $salutation
hello world
zhangxin@zhangxin-VirtualBox:~/mypro$ salutation=+
zhangxin@zhangxin-VirtualBox:~/mypro$ echo $salutation
+

使用read命令将用户的输入赋值给一个变量。

zhangxin@zhangxin-VirtualBox:~/mypro$ read salutation
ni hao , xiao ming
zhangxin@zhangxin-VirtualBox:~/mypro$ echo $salutation
ni hao , xiao ming

与PHP语法类似,把带有$字符的变量放在双引号中,程序执行到这一行时会把变量替换为它的值;

如果把它放在单引号中,就不会发生替换现象。

在$字符前面加上一个\字符,会取消它的特殊含义。

#!/bin/sh

myvar="Hi there"

echo $myvar
echo "$myvar"
echo '$myvar'
echo \$myvar echo Enter some text
read myvar echo '$myvar' now equals $myvar
exit
~

执行这个脚本:

zhangxin@zhangxin-VirtualBox:~/mypro$ ./myvar.sh
Hi there
Hi there
$myvar
$myvar
Enter some text
good bye
$myvar now equals good bye

Linux程序设计(二)shell程序设计的更多相关文章

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

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

  2. Linux操作系统之Shell程序设计

    Shell是种命令解释程序,也可以看作是一种命令语言的解释器. 用户在与Shell交互时所输入的命令行必须符合Shell命令的语法和语义规范,才能够被Shell理解并执行.Shell所使用的这种命令语 ...

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

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

  4. Linux shell 程序设计

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

  5. 2018-2019-20175205实验二面向对象程序设计《Java开发环境的熟悉》实验报告

    2018-2019-20175205实验二面向对象程序设计<Java开发环境的熟悉>实验报告 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)>< ...

  6. 2018-2019-2 20175306实验二面向对象程序设计《Java开发环境的熟悉》实验报告

    2018-2019-2 20175306实验二面向对象程序设计<Java开发环境的熟悉>实验报告 面向对象程序设计-1 实验要求: 参考:> http://www.cnblogs.c ...

  7. 20175212童皓桢 Java实验二-面向对象程序设计实验报告

    20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...

  8. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验二 面向对象程序设计 实验报告

    20175316 盛茂淞 2018-2019-2 <Java程序设计>实验二 面向对象程序设计 实验报告 (一)单元测试 在 IDEA中我们把产品代码放在src目录中,把测试代码放在tes ...

  9. #2019-2020-4 实验二面向对象程序设计《Java开发环境的熟悉》实验报告

    2019-2020-4 实验二面向对象程序设计<Java开发环境的熟悉>实验报告 一.面向对象程序设计-1 ①实验要求: 1.参考 http://www.cnblogs.com/roced ...

  10. 20165317JAVA实验二-面向对象程序设计

    JAVA实验二-面向对象程序设计 提交点一 参考Intellj IDEA 简易教程-单元测试完成单元测试的学习 在IDEA中建立名为MyUtil5317的project,并在其src文件夹中创建名为M ...

随机推荐

  1. SPA架构

    databus ajax处理得到得数据 service 对databus做缓存,以及业务(如评论列表,评论详情) component 组件 html+css+js组成 evenbus 组件之间通讯,数 ...

  2. MVC + JQUERY + AJAX

  3. SQLite Helper (C#) z

    http://www.codeproject.com/Articles/746191/SQLite-Helper-Csharp Introduction I have written a small ...

  4. 传感器 -UIAccelerometer

    // ios 4 之前 UIAccelerometer // ios 5 <CoreMotion/CoreMotion.h> #import "ViewController.h& ...

  5. 【产品体验】喵街&飞凡

    最近O2O很火啊,我也来找几个O2O产品体验下~~~ 阿里今年5月30号上线了一款线下逛街App——喵街,号称消费者的逛街神器.阿里去年已经与银泰合作一年,探索互联网和传统实体零售合作之路,这次则免费 ...

  6. BZOJ 1692: [Usaco2007 Dec]队列变换

    Description FJ打算带他的N(1 <= N <= 30,000)头奶牛去参加一年一度的"全美农场主大奖赛".在这场比赛中,每个参赛者都必须让他的奶牛排成一列 ...

  7. MySQL 对于大表(千万级),要怎么优化呢?

    http://www.zhihu.com/question/19719997 提问:如何设计或优化千万级别的大表?此外无其他信息,个人觉得这个话题有点范,就只好简单说下该如何做,对于一个存储设计,必须 ...

  8. SDUT 2351 In Danger

    点我看题目 题意 : 有n个兵想要自杀,所以他们决定围成一个圈,从1开始一直环到n,然后每第2个开始自杀,但是有一个兵不想死,所以让你编程求出最后一个应该死的人的位置,这样的话就剩他自己他可以不自杀了 ...

  9. 两种方法,获取磁盘剩余空间--PYTHON

    import ctypes import os import platform import sys def get_free_space_mb(folder): """ ...

  10. Web Development Terms

    I've come across lots of terms while learning web development. I'm feeling myself overwhelmed. Here ...