Shell 编程初步

本文主要介绍Shell脚本的基本概念和简单应用。包括:

  • Shell & Shell Script概念
  • Shell脚本语言
  • Shell语言应用实例

Shell & Shell Script概念

Shell

在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。
同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

Shell Script

Shell脚本与Windows/Dos下的批处理相似,是用Shell命令预先放入到一个文件中,方便一次性执行的一个程序文件;主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高;它使用Linux/Unix下的命令。

Shell 环境

Shell 编程跟java、php编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

Linux系统

大多数Linux系统默认的Shell是Bash(Bourne Again Shell),Linux绝对路径为/bin/bash。
在一般情况下,人们并不区分 Bourne Shell (sh)和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为#!/bin/bash(告诉系统其后路径所指定的程序即是解释此脚本文件的Shell程序)。

windows系统

Windows7系统下的cmd可以具有shell类似的功能。要想在windows环境下使用sh/bash,有如下几种方法:
1.安装Git,其安装目录bin中就有sh/bash,这时候只要将该文件夹添加到环境变量中就可以方便的使用sh/bash了!
git sh&bash
Bash
2.使用远程登录软件登录一个Linux服务器,这样自然可以操作sh/bash了。工具有Putty、SecureCRT等
效果如图:
SecureCRT

Shell命令

Shell命令比较丰富,这里简单介绍一下常用到的Shell命令。

文件与文件夹的查看、新建与删除

命令说明
cd [dir]进入指定目录
../上级路径
./当前目录
cd进入管理员目录
ls (-a)列出当前文件夹中文件(所有文件包括隐藏文件)
cat [file name]查看指定文件
mkdir [dir name]在当前目录创建文件夹
touch [file name]在当前目录创建文件
echo [str]显示字符串
echo [str] >> [file name]将字符串追加写入指定文件
echo [str] > [file name]将字符串覆盖写入指定文件
rm [file name]移除指定文件
rmdir [dir name]移除指定文件夹

编程调试常用命令

命令说明
javac [file name]编译指定java程序(要带.java后缀名)
javac *编译当前目录所有java程序
java [class name]运行指定java程序(不需要带后缀名)
cl /c /D /EHsc [file name]编译c.cpp文件
link [file name]链接obj文件,生成可执行文件
bash/sh [file name] [pa 1 2 3 …]运行Shell文件

Shell 语言及示例

Shell 语法

shell语法内容比较多,这就不列举了。可以参看兄弟连出品的Shell编程讲解,很不错 :
兄弟连Shell编程课程PDF下载

实例:git管理

利用shell语法编写了一个实现git管理的脚本,能够相对方便简单的实现:
本地版本库创建
添加到暂存区
提交到缓存区
推送到远程版本库
以下为主要的代码:

#创建本地版本库并提交修改到本地版本库,之后提交
if [ !-d ./.git ]
then 
    #echo "git is exsisted!"
    git init
    #echo git init
fi
#判断参数个数,根据参数个数,设置相应的参数
if test $# -eq 3
then 
    #3个参数的时候,依次对应要提交的文件名、提交时的注释、远程库名称
    file=$1
    comm=$2
    rep=$3
elif test $# -le 2
then
    #2个参数的时候,依次对应提交时的注释、远程库名称,默认提交所有文件
    file="."
    comm=$1
    rep=$2
fi
git add $file
git commit -m "$comm"
#若第二个参数不为空,则提交到以最后一个参数命名的远程版本库,并返回提交结果!
if test $rep
then
    #提交至远程版本库
    REMOTE=`git remote`
    #echo $REMOTE
    if test $REMOTE
    then 
        #echo remote add
        if [ $REMOTE=$ORIGIN ]
        then
            git remote rm origin
        fi
    fi
    git remote add origin https://github.com/sunpro/$rep.git
    git push -u origin master
    if [ $? -eq 0 ]
    then 
        echo push succeed!
    else 
        echo push failed!
    fi
fi

用shell运行如图:
git bash

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值