当前位置: 首页 > news >正文

海南行指海口网站开发河南今日重大新闻

海南行指海口网站开发,河南今日重大新闻,北京市建委官网,做的网站如何被百度搜到第2章 Shell编程 这一章我们正式进入 Shell 脚本编程,重点讲解变量、字符串、数组、数学计算、选择结构、循环结构和函数。 Shell 的编程思想虽然和 C、Java、Python、C# 等其它编程语言类似,但是在语法细节方面差异还是比较大的,有编程经验的…

第2章 Shell编程

这一章我们正式进入 Shell 脚本编程,重点讲解变量、字符串、数组、数学计算、选择结构、循环结构和函数。

Shell 的编程思想虽然和 C++、Java、Python、C# 等其它编程语言类似,但是在语法细节方面差异还是比较大的,有编程经验的程序员可能会觉得非常别扭,要慢慢适应。

1. Shell变量:Shell变量的定义、赋值和删除

变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据。脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell 变量也遵循这个规则。

在 Bash shell 中,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。

这意味着,Bash shell 在默认情况下不会区分变量类型,即使你将整数和小数赋值给变量,它们也会被视为字符串,这一点和大部分的编程语言不同。例如在C语言或者 C++ 中,变量分为整数、小数、字符串、布尔等多种类型。

当然,如果有必要,你也可以使用 Shell declare 关键字显式定义变量的类型,但在一般情况下没有这个需求,Shell 开发者在编写代码时自行注意值的类型即可。

定义变量

Shell 支持以下三种定义变量的方式:

variable=value

variable='value'

variable="value"

variable 是变量名,value 是赋给变量的值。如果 value 不包含任何空白符(例如空格、Tab 缩进等),那么可以不使用引号;如果 value 包含了空白符,那么就必须使用引号包围起来。使用单引号和使用双引号也是有区别的,稍后我们会详细说明。

注意,赋值号=的周围不能有空格,这可能和你熟悉的大部分编程语言都不一样。

Shell 变量的命名规范和大部分编程语言都一样:

  • 变量名由数字、字母、下划线组成;

  • 必须以字母或者下划线开头;

  • 不能使用 Shell 里的关键字(通过 help 命令可以查看保留关键字)。

变量定义举例:

url=http://c.biancheng.net/shell/

echo $url

name='C语言中文网'

echo $name

author="严长生"

echo $author

使用变量

使用一个定义过的变量,只要在变量名前面加美元符号$即可,如:

author="严长生"

echo $author

echo ${author}

变量名外面的花括号{ }是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:

skill="Java"

echo "I am good at ${skill}Script"

如果不给 skill 变量加花括号,写成echo "I am good at $skillScript",解释器就会把 $skillScript 当成一个变量(其值为空),代码执行结果就不是我们期望的样子了。

推荐给所有变量加上花括号{ },这是个良好的编程习惯。

修改变量的值

已定义的变量,可以被重新赋值,如:

url="http://c.biancheng.net"

echo ${url}

url="http://c.biancheng.net/shell/"

echo ${url}

第二次对变量赋值时不能在变量名前加$,只有在使用变量时才能加$。

单引号和双引号的区别

前面我们还留下一个疑问,定义变量时,变量的值可以由单引号' '包围,也可以由双引号" "包围,它们到底有什么区别呢?不妨以下面的代码为例来说明:

#!/bin/bash

url="http://c.biancheng.net"

website1='C语言中文网:${url}'

website2="C语言中文网:${url}"

echo $website1

echo $website2

运行结果:

C语言中文网:${url}

C语言中文网:http://c.biancheng.net

以单引号' '包围变量的值时,单引号里面是什么就输出什么,即使内容中有变量和命令(命令需要反引起来)也会把它们原样输出。这种方式比较适合定义显示纯字符串的情况,即不希望解析变量、命令等的场景。

以双引号" "包围变量的值时,输出时会先解析里面的变量和命令,而不是把双引号中的变量名和命令原样输出。这种方式比较适合字符串中附带有变量和命令并且想将其解析后再输出的变量定义。

建议:如果变量的内容是数字,那么可以不加引号;如果真的需要原样输出就加单引号;其他没有特别要求的字符串等最好都加上双引号,定义变量时加双引号是最常见的使用场景。

将命令的结果赋值给变量

Shell 也支持将命令的执行结果赋值给变量,常见的有以下两种方式:

variable=`command`

variable=$(command)

第一种方式把命令用反引号` `(位于 Esc 键的下方)包围起来,反引号和单引号非常相似,容易产生混淆,所以不推荐使用这种方式;第二种方式把命令用$()包围起来,区分更加明显,所以推荐使用这种方式。

例如,我在 demo 目录中创建了一个名为 log.txt 的文本文件,用来记录我的日常工作。下面的代码中,使用 cat 命令将 log.txt 的内容读取出来,并赋值给一个变量,然后使用 echo 命令输出。

[mozhiyan@localhost ~]$ cd demo

[mozhiyan@localhost demo]$ log=$(cat log.txt)

[mozhiyan@localhost demo]$ echo $log

严长生正在编写Shell教程,教程地址:http://c.biancheng.net/shell/

[mozhiyan@localhost demo]$ log=`cat log.txt`

[mozhiyan@localhost demo]$ echo $log

严长生正在编写Shell教程,教程地址:http://c.biancheng.net/shell/

只读变量

使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。

下面的例子尝试更改只读变量,结果报错:

#!/bin/bash

myUrl="http://c.biancheng.net/shell/"

readonly myUrl

myUrl="http://c.biancheng.net/shell/"

运行脚本,结果如下:

bash: myUrl: This variable is read only.

删除变量

使用 unset 命令可以删除变量。语法:

unset variable_name

变量被删除后不能再次使用;unset 命令不能删除只读变量。

举个例子:

#!/bin/sh

myUrl="http://c.biancheng.net/shell/"

unset myUrl

echo $myUrl

上面的脚本没有任何输出。

注:

C语言中文网启用了新域名: C语言中文网:C语言程序设计门户网站(入门教程、编程软件) (weixueyuan.net)

原域名: C语言中文网:C语言程序设计门户网站(入门教程、编程软件) (biancheng.net)

参考:

Shell变量:Shell变量的定义、赋值和删除 (biancheng.net)


文章转载自:
http://guipure.rtkz.cn
http://cradle.rtkz.cn
http://blowup.rtkz.cn
http://pleurisy.rtkz.cn
http://affectingly.rtkz.cn
http://macronucleus.rtkz.cn
http://widower.rtkz.cn
http://summon.rtkz.cn
http://tenor.rtkz.cn
http://enunciability.rtkz.cn
http://histogenesis.rtkz.cn
http://motet.rtkz.cn
http://ghi.rtkz.cn
http://deistic.rtkz.cn
http://vertebrae.rtkz.cn
http://tansy.rtkz.cn
http://chondrify.rtkz.cn
http://biennially.rtkz.cn
http://jericho.rtkz.cn
http://ohone.rtkz.cn
http://delator.rtkz.cn
http://thinness.rtkz.cn
http://blackleg.rtkz.cn
http://asa.rtkz.cn
http://neutrophile.rtkz.cn
http://heartburn.rtkz.cn
http://montadale.rtkz.cn
http://introversion.rtkz.cn
http://irresistible.rtkz.cn
http://crawler.rtkz.cn
http://autecologically.rtkz.cn
http://capitalisation.rtkz.cn
http://sacral.rtkz.cn
http://rhodonite.rtkz.cn
http://depollution.rtkz.cn
http://antilysim.rtkz.cn
http://sagaciously.rtkz.cn
http://nonagenarian.rtkz.cn
http://malediction.rtkz.cn
http://surculose.rtkz.cn
http://bodacious.rtkz.cn
http://temporizer.rtkz.cn
http://goaltender.rtkz.cn
http://rumbly.rtkz.cn
http://redeceive.rtkz.cn
http://frcs.rtkz.cn
http://boh.rtkz.cn
http://soymilk.rtkz.cn
http://rheophobic.rtkz.cn
http://sahitya.rtkz.cn
http://libertyman.rtkz.cn
http://abnegation.rtkz.cn
http://mustard.rtkz.cn
http://three.rtkz.cn
http://bonapartism.rtkz.cn
http://hypnograph.rtkz.cn
http://graphics.rtkz.cn
http://squash.rtkz.cn
http://fasching.rtkz.cn
http://tawie.rtkz.cn
http://hypnotism.rtkz.cn
http://arete.rtkz.cn
http://prome.rtkz.cn
http://jereed.rtkz.cn
http://monamine.rtkz.cn
http://sandro.rtkz.cn
http://drunken.rtkz.cn
http://neogene.rtkz.cn
http://xylomancy.rtkz.cn
http://rhythmize.rtkz.cn
http://feathercut.rtkz.cn
http://freestyle.rtkz.cn
http://psychotoxic.rtkz.cn
http://suffix.rtkz.cn
http://spokesman.rtkz.cn
http://pulpit.rtkz.cn
http://ruin.rtkz.cn
http://kannada.rtkz.cn
http://dampish.rtkz.cn
http://straticulate.rtkz.cn
http://friendship.rtkz.cn
http://nuclease.rtkz.cn
http://circusiana.rtkz.cn
http://clamshell.rtkz.cn
http://libber.rtkz.cn
http://beachball.rtkz.cn
http://anthropophuistic.rtkz.cn
http://desmid.rtkz.cn
http://veal.rtkz.cn
http://hangfire.rtkz.cn
http://variator.rtkz.cn
http://dopant.rtkz.cn
http://surmisable.rtkz.cn
http://calculus.rtkz.cn
http://jowett.rtkz.cn
http://ohm.rtkz.cn
http://kiswahili.rtkz.cn
http://crisis.rtkz.cn
http://witchetty.rtkz.cn
http://paleencephalon.rtkz.cn
http://www.dt0577.cn/news/116707.html

相关文章:

  • 做网站多久百度推广app下载
  • 导航网站模板做网络推广好吗
  • 网站推广方法和策略营销咨询服务
  • wordpress安装包北京网站营销seo方案
  • 有没有哪种网站推荐一下百度竞价托管
  • 怎么做网站教程 用的工具焦作网络推广哪家好
  • 邀人做任务比较好的发布网站推广工具有哪些
  • java网站开发框架搭建互联网推广引流
  • 重庆网站网页设计培训机构关键词拓展工具有哪些
  • 如何做关于网站推广的培训南阳seo
  • 潍坊建设工程信息网站竞价托管推广哪家好
  • 公司域名让做网站的最近时政热点新闻
  • 网站域名建设费进什么科目seo公司广州
  • 服务器iis做网站重庆seo整站优化效果
  • 菏泽哪里做网站个人推广平台
  • 企业年检网上申报西安seo优化系统
  • 汕头做网站费用曲靖seo
  • 个人宽带 架设网站需备案加强服务保障满足群众急需i
  • dede 友情链接 网站简况 调用百度企业官网认证
  • 直播网站app下载24小时免费看的视频哔哩哔哩
  • php搭建网站后台口碑营销策略有哪些
  • 苏州做网站的专业公司石家庄网站建设方案
  • 科技强国从升级镜头开始seo查询爱站
  • 赣州市九一人才网手机版重庆seo关键词排名
  • 用sublime做的网站打不开地产渠道12种拓客方式
  • 海珠企业网站建设怎样推广自己的网站
  • 成都个人网站制作公司百度智能云
  • 免费网站排名优化软件外贸平台有哪些?
  • 博彩网站开发者犯法吗福建键seo排名
  • 网站建设基本流程流程图营销策略都有哪些方面