shell script的学习(一)常用命令

一.首先来总结一下,到底什么是shell ,什么又是shell script。

其实简单来讲,shell 就是操作内核的指令。他提供给用户一个接口来完成对内核的调用,因为如果应用程序想要完成一定的功能最终是要通过内核来完成的。

所以shell 就是一个可以调用内核的应用程序。shell命令可以在终端下直接输入,然后完成一些操作。

而shell script 是一个用shell写成的 大量shell组成的一个批处理脚本程序。他可以通过vi/vim来编辑成一个后缀为.sh的shell脚背文件然后通过 sh .sh来进行运行。下图就是在vim下编辑的一个最简单的 hello world脚本的例子。


二、下面我们对这个列子来做下解释

以#开头的在shell 脚本中表示注释,但是第一行除外,#!/bin/bash 表示这个脚本使用的shell的版本是/bin/bash这个shell 因为shell的版本较多,可以查看/etc/shells文件列出的是可用的shell版本。在linux下默认的是bash shell.

2~5行是对这个脚本的解释,包括脚本的功能,创建日期和发行版本。这是一个好的脚本编写习惯所必须的,便于后面的修改。

PATH是环境变量。

echo 命令是linux中变量的操作有关的一个命令。 例如我们定义了一个变量 name=michael; 用命令 echo $name 可以得出name 代表的变量:michael 这个值。

这里的echo 是下面的用法:

语   法:echo [-ne][字符串]或 echo [--help][--version]
补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
参   数:-n 不要在最后自动换行
           -e 若字符串中出现中出现需要转义的字符则进行转义,则特别加以处理,而不会将它当成一般文字输出:如果没有-e的话 \a \n会原样输出



三、我们来记录一下shell中经常会用到的命令。

1、read 命令

read命令是用来和用户进行交互的命令,会接收从键盘输入的变量的内容,类似于c语言中的getchar()函数。 

read的用法是 read [-pt] 变量名

-p 表示read 后面可以加提示符。例如: read -p "Please input  the name" name

-t  表示可以有多少时间给用户来输入。例如: read -t 30 name 即用户可以有30s的时间来输入。

2、touch 命令

touch 用来创建一个文件。touch 文件名 /"文件名" 都可以。但是若filename是一个变量的话,那么touch "$filename"用来创建的是一个filename指代的那个文件名。

3、$((算数运算)) 和 declare/typeset命令

在linux 的shell 变量的默认内容是一个字符串,所以对于例如: result=2*4这样的算数运算赋值,我们用echo$result查看得到的结果值是 2*4。那么如何才能得到结果的值呢。

有两种方式:

1)使用 result=$((2*4)) 这样的形式。简单直观

2)使用declare/typeset命令。其中declare好typeset的用法是一样的。

declare 命令是用来声明变量的类型。用法: declare [-aixr] variable 

-a声明为数组类型。-i 声明为整形。-x 将变量声明为环境变量。类似于 export。-r声明为只读类型。

如 declare -i result=3*4

那么echo $result得到的值是12;

注意如果单单是一个 declare 命令,那么最后执行的同set 即得到所有变量的命名情况。 

4、source , sh 和 ./执行 shell script的区别

sh 和 ./ 执行shell script执行的方式是一样的,都是新建一个bash,然后再子进程中执行,那么在脚本中定义的变量在父进程bash中就无作用。比如:


在执行这个脚本时,firstname 和 lastname我们在输入之后完成操作后,在bash中使用 echo$firstname $lastname的时候是得不到结果的。

而用 source sh02.sh 来执行时就可以了。因为他是在当前的进程中执行。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值