shell重温---基础篇(shell变量&字符串以及git GUI运行shell脚本方式)

既然是基础篇那确定是须要对shell的各类须要注意的基本点进行说明了。接下来就是show time...php

   shell呢,是一个用C语言编写的应用程序,是用户使用linux的桥梁。因此呢,他既是一种命令语言,同时呢仍是一种程序设计语言。shell脚本(shell script),是一种为shell编写的脚本程序。业界所说的shell一般都是指shell脚本,可是各位看官要知道的是,shell和shell script是两个不一样的概念。因为习惯的缘由,简介起见,本文出现的“shell编程”都是指shell脚本编程,而不是指开发shell自身,各位看官千万要注意哈。java

    其次呢,shell编程跟java、php编程同样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就能够了。可是linux的shell种类不少,本人所学习的是其中的免费版本bash shell。接下来就是正题了。linux

    shell脚本开头呢,必需要注明本身用的是那个解释器。保存的文件后缀名为***.sh就行了。我用的是bash,因此开头须要注上#!/bin/bash
git

    而后就是输出了,跟php相似,echo就能够输出东西:echo "hello word!",就能够输出内容了。我是在windows上使用git GUI来运行的,具体运行方式为./test.sh,而后回车就运行了这个test.sh文件。最主要的是shell里没有相似php的;似得分界符,只要换行就是另外的输出了。shell

    再来就是shell中的变量问题了,跟php的变量命名规则差很少,惟一不一样的就是不须要使用$开头来命名变量,可是输出或者使用变量的时候必须使用$。具体方式为your_name="luyaran"(变量命名),echo $your_name。还有就是我们phper的习惯是命名时习惯性的会加上空格:$your_name = "luyaran";,可是在这里我想说错了,等号两边不能加上空格,加上就算是常规性的defined。我刚刚开始用shell的时候就常常踩进这个坑啦。另,变量还有一种输出方式:echo "${your_name} is my girlfriend",其主要目的是为了帮助解释器识别变量边界。比较个性的是咱们还可使用readonly这个命令来使咱们的变量只具备读的属性而不能修改,看起来比较高达上的样子。而后嘞,咱们就能够用unset加变量名的方式来删除咱们所定义的变量。接下来按照php的套路,咱们最后要肯定的就是变量的类型,按照官方解释以下:编程

 

运行shell时,会同时存在三种变量:windows

  • 1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其余shell启动的程序不能访问局部变量。
  • 2) 环境变量 全部的程序,包括shell启动的程序,都能访问环境变量,有些程序须要环境变量来保证其正常运行。必要的时候shell脚本也能够定义环境变量。
  • 3) shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

    好的,而后就到了字符串这块了。其实不外乎获取字符串的长度,截取字符串,拼接字符串等有限的几个方面。在开始以前呢,还有一点须要提早说明的就是单双引号之间的区别和用途:
bash

  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
  • 单引号字串中不能出现单引号(对单引号使用转义符后也不行)。
  • 双引号里能够有变量
  • 双引号里能够出现转义字符

    字符串拼接与咱们php的样式略微的有差别,那就是没有链接符:编辑器

 

your_name="qinjx" greeting="hello, "$your_name" !" greeting_1="hello, ${your_name} !" echo $greeting $greeting_1

    获取字符串长度:学习

 

string="abcd" echo ${#string} #输出 4

    提取子字符串(如下示例是从字符串第二个开始,截取四个字符):

 

string="runoob is a great site" echo ${string:1:4} # 输出 unoo

    字符串查找(如下示例的“`”是Esc键下面的那个):

 

string="runoob is a great company" echo `expr index "$string" is` # 输出 8

    勉强写得差很少了,各位看官见笑了啊,本人纯属小白,这篇博客只是用来作笔记而已,勿喷哈。。。

    关于以后的,本人会在学习过程当中,陆续接上的。。。

 

   原文连接:https://blog.csdn.net/luyaran/article/details/79353093

相关文章
相关标签/搜索