Shell基础书写与概念
来源:互联网 发布:snmp v2c协议数据 编辑:程序博客网 时间:2024/04/29 14:20
对于Shell脚本的书写,约定俗成,第一行必须如下所示:(务必放在文件的第一行)
1
2
#!/bin/sh
...
符号#!用来告诉系统执行该脚本的程序,这里使用/bin/sh。编辑结束并保存;这里最好使用“!/bin/bash”而不是“!/bin/sh”,如果使用tc shell改为tcsh,其他类似。
如果要执行该脚本,必须先使用chmod命令打开脚本的执行权限,如下:
1
chmod
+x yourScriptName
注释: 在进行shell编程时,以 # 开头的句子表示注释;
变量: 在其他编程语言中你必须使用变量。在shell编程中,所有的变量都由字符串组成,并且大家不需要对变量进行声明;当你要赋值给一个变量,首先熟悉如下知识;
1.需要给变量赋值时,可以这么写: 变量名=值
1-1. 首个字符必须为字母(a-z,A-Z)
1-2 中间不能有空格,可以使用下划线(_)
1-3 不能使用标点符号
1-4 不能使用bash里的关键字(可用help命令查看保留关键字)
2. 要取用一个变量的值,只需在变量名前面加一个$ ( 注意: 给变量赋值的时候,不能在”=”两边留空格 )
3. echo输出(打印)
OK,书写第一个完整Shell脚本:
1
2
3
4
5
6
#!/bin/sh
#
对变量赋值:
himi="HelloShell"
#
等号两边均不能有空格存在
#
现在打印变量
a
的内容:
echo
"A is:"
echo
$himi
OK,终端命令&输出如下:
Last login: Sat Apr 14 14:16:13 on ttys000
mac:~ Himi$ cd /Users/Himi/Desktop/
mac:Desktop Himi$ chmod +x himi
mac:Desktop Himi$ ./himi
A is:
HelloShell
mac:Desktop Himi$
需要大家注意的是有时候变量名可能会和其它文字混淆,比如:
#!/bin/sh
#对变量赋值:
himi=”test” #等号两边均不能有空格存在
echo $himi
echo $himi A
echo “A $himi”
#注意混淆
echo “A $himi_OK”
#正确写法:
echo “A ${himi}_OK”
终端执行&打印:
1
2
3
4
5
6
7
mac:Desktop Himi$ ./himi
test
test
A
A test
A
A test_OK
mac:Desktop Himi$
童鞋们可以看到《 echo“A $himi_OK” 》这里没有正常打印出来,这是由于shell会去搜索变量himi_OK的值,而实际上这个变量此时并没有值。这时,我们可以用花括号来告诉shell要打印的是himi变量;
还需要注意shell的默认赋值是字符串赋值。比如:
1
2
3
4
5
#!/bin/sh
#
字符串赋值:
_int=19
_tot=$_int+89
echo $_tot
打印的_tot不是108 !而是 19+89 !出现此的原因就是因为Shell默认是字符串赋值,应该需要计算应该先熟悉如下几个知识:
let 表示数学运算
$[] 表示将中括号内的表达式作为数学运算先计算结果再输出。
expr 用于整数值运算,每一项用空格隔开
上面前两种方式在bash下有效,在sh下会出错。
OK,知道这些就可以重新将刚才的脚本改写成如下形式:
1
2
3
4
5
#!/bin/sh
#
字符串赋值:
_int=19
_tot=$[$_int+89]
echo
$_tot
3种形式输出的结果都是 108 ;
将到这里就不得不说下Shell的算术运算仂,对于Shell种的运算中,大家需要知道:
C shell只支持整数的运算;
运算符如下图所示:
简单写几个运算:
注意:
1.运算符两侧都必须有空格!!
2.C shell不支持浮点运算符(ps.如果您想要执行更加复杂的数学运算,可用UNIX的实用程序bc和nawk)
- Shell基础书写与概念
- 【Shell 编程基础第一部分】第一个Shell脚本HelloShell及一些简单的Shell基础书写与概念;
- 【Shell 编程基础第一部分】第一个Shell脚本HelloShell及一些简单的Shell基础书写与概念
- 【Shell 编程基础第一部分】第一个Shell脚本HelloShell及一些简单的Shell基础书写与概念
- 01 基础概念(实战Linux Shell编程与服务器管理)
- shell编程基础(3.常用概念命令与操作
- .sh的书写与运行基础
- Shell学习---概念与理解
- Linux and Unix Shell -- 基础概念
- 关于shell变量的基础概念
- Shell基础与Profile
- Shell脚本书写总结
- JavaScript - js基础书写以及与vbscript区别
- nginx架构与基础概念
- Linux 线程概念与基础
- CSS基础之1:CSS概念,书写位置,语法,CSS各种选择器
- C#基础知识(一)——相关概念与书写规则
- shell编程基础(2)---&&与||
- ErrorLookUp
- android的多点触摸(附自己的部分代码)
- 查询ADO.net entity 一个表的前五个数据
- Google 地图折线编码解码算法(Javascript实现)
- 隐马尔科夫模型简介
- Shell基础书写与概念
- Java调用Oracle、mysql带out参数的存储过程
- 三种C# using的用法
- Oracle学习总结-基本操作
- HOG Matlab代码
- Jena TDB
- STL学习之priority_queue适配器
- android UI 设计之 Tabs
- Java泛型简明教程