Shell学习(二)入门到复杂 脚本实例(计算器)

shell文件开头

shell文件必须以下面的行开始(必须方在文件的第一行):

#!/bin/sh

符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。

当编辑好脚本时,如果要执行该脚本,还必须使其可执行。

要使脚本可执行:

运行chmod +x filename这atch样才能用./filename 来运行

注释

在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。我们真诚地建议您在程序中使用注释。

变量

在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明,直接赋值就可以,应用变量的话,用$+变量名的形式。

要赋值给一个变量,您可以这样写:

a="hello world"

现在打印变量a的内容:

echo "A is:"

echo $a

有时候变量名很容易与其他文字混淆,比如:

num=2

echo "this is the $numnd"

这并不会打印出"this is the 2nd",而仅仅打印"this is the ",因为shell会去搜索变量numnd的值,

但是这个变量时没有值的。可以使用花括号来告诉shell我们要打印的是num变量:

num=2

echo "this is the ${num}nd"

这将打印: this is the 2nd

环境变量

.由export关键字处理过的变量叫做环境变量。我们不对环境变量进行讨论,因为通常情况下仅仅在登录

脚本中使用环境变量。
这些不是系统命令,但是他们真的很重要。

管道(|): 将一个命令的输出作为另外一个命令的输入。

grep "hello" file.txt | wc -l

在file.txt中搜索包含有”hello”的行并计算其行数。

在这里grep命令的输出作为wc命令的输入。当然您可以使用多个命令。

重定向:将命令的结果输出到文件,而不是标准输出(屏幕)。

>写入文件并覆盖旧文件

>>加到文件的尾部,保留旧文件内容。

反短斜线

使用反短斜线("`")可以将一个命令的输出作为另外一个命令的一个命令行参数。

数值变量:

expr 变量1 运算符 变量2 [运算符 变量3]

+加法运算

-减法运算

\*乘法运算

%求模运算 相除后的余数

预定义变量是由bash程序预先定义好的一类特殊变量,用户只能使用而不能创建新的预定义变量,也不能直接为预定义变量赋值。常见预定义变量如下:

$#表示命令行中位置参数的个数

$*表示所有位置参数的内容

$?表示前一条命令执行后的返回状态,返回为0表示执行正确,任何非0表示运行出现异常

$0表示当前执行的脚本或程序名称

时间: 2024-12-22 02:51:16

Shell学习(二)入门到复杂 脚本实例(计算器)的相关文章

Shell实现多级菜单系统安装维护脚本实例分享_linux shell

演示效果: 1.一级菜单 2.二级菜单 3.执行操作 脚本参考: 复制代码 代码如下: #!/bin/bash #author lic(oldboy linux student) #date 1304 DISK_NO="/dev/sda1" NGINX_DIR="/usr/local/tdoa/nginx/sbin/nginx" MYSQL_DIR="/usr/local/tdoa/mysql/bin/mysqld_safe" SERVER1=&

Java学习从入门到精通

Java学习从入门到精通工具篇一. JDK (Java Development Kit) JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar).不论什么Java应用服务器实质都是内置了某个版本的JDK.因此掌握JDK是学好Java的第一步.最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有G

shell学习的一些资源

shell基础1:文件安全与权限 http://bbs.chinaunix.net/thread-434579-1-1.html 附:Linux的用户和用户组管理 http://bbs.chinaunix.net/thread-438660-1-1.html shell基础二:查找技巧,find及xargs的使用http://bbs.chinaunix.net/thread-441883-1-1.html shell基础三和四:后台(crontab,at,&,nohup)及(*,?,[]等) h

《面向ArcGIS的Python脚本编程》——1.7 Python脚本实例

1.7 Python脚本实例 面向ArcGIS的Python脚本编程 本节将通过两个例子来说明如何使用Python编写脚本.这两个例子来源于Esri和ArcGIS的用户社区.列举脚本实例的原因之一就是为了让读者熟悉Python代码.学习编写代码的一个最好的方法就是练习现有的代码.现在不要求读者能够理解这些代码,但是这些例子将会让您了解本书即将讲些什么. 例一:确定错误地址 AddressError脚本工具是由Esri公司的员工Bruce Harold开发的.该工具会在几条路段的范围内,检查路段中

AngularJS入门教程中SQL实例详解_AngularJS

AngularJS SQL 在前面章节中的代码也可以用于读取数据库中的数据. 使用 PHP 从 MySQL 中获取数据 AngularJS 实例 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></s

学习tomcat之tomcat单机多实例部署

想要获得更多的文章,可以关注我的微信ilanniweb 为了有效的利用服务器的资源,我们现在需要在一台服务器上部署多个tomcat,这也就是我们经常所说的tomcat单机多实例部署. PS:本次实验的测试OS为centos6.5 64bit. 一.配置JAVA_HOME路径 要配置JAVA_HOME路径,我们就要首先安装jdk.jdk的安装在此我们使用的是yum方式,没有使用源码方式安装. 1.1 yum安装jdk jdk我们现在是使用的yum方式进行安装的,首先我们先来查看能够安装的jdk版本

selenium2 学习资料?入门资料,环境配置。。。。

问题描述 selenium2 学习资料?入门资料,环境配置.... selenium2 学习资料?入门资料,环境配置....web测试中如何正确使用?web测试哪种框架最好? 解决方案 谢谢,不是我需要的 解决方案二: cocos2dx入门资料及学习资源cocos2dx入门资料及学习资源OGRE学习资料(一):环境配置

Zend Framework开发入门经典教程_php实例

本文讲述了Zend Framework开发入门相关知识点.分享给大家供大家参考,具体如下: Zend Framework发布了!虽然仍处于开发初期,这个教程仍突出讲解目前几个最好的功能,并指导你完成一个简单程序的构建. Zend最早在社区里发布了ZF.基于同样的想法,这个教程写来用于展示ZF现有的功能.由于这个教程是在线发布,我将在ZF变化时对其进行更新,以便尽可能有效. 要求 Zend Framework要求PHP5.为了更好利用本教程的代码,你还需要Apache网页服务器.因为示范程序(一个

php入门教程:php rtrim()实例教程

php入门教程:php rtrim()实例教程 定义和用法 该rtrim ( )函数将删除空格或其他预先确定的性质从右侧的一个字符串. 语法 rtrim(string,charlist) 参数说明字符串必需.指定的字符串检查charlist可选.指定的字符删除字符串.如果省略,所有的下列字符被删除: " 0 " -空" T "型-标签" ñ " -新的生产线" x0B " -垂直标签" r "开始-回车&q