栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Shell入门基础

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Shell入门基础

Shell入门基础
    • Shell入门基础
    • 创建脚本
    • 脚本执行权限
    • 接收用户输入的参数
    • 参数扩展
    • 第一个Shell程序:Hello World!
    • Shell命令的执行
    • Shell 程序退出状态

Shell入门基础

Shell的起源分类等纯理论之类的我感觉就没有必要阐述了,大家百度都可以找到,而且会比我这一两句说的详细清楚,所以我决定直接阐述Shell(命令解释器)一些具体的基础操作。

创建脚本
`	#! /bin/sh `

shell程序中的注释以“#”符号开始,直到该行结束。但#!/bin/sh是一种特殊形式的注释,其中“#!”字符告诉系统后面紧跟的参数是用来执行文本的程序。

脚本执行权限

chmod [options] filename 用于修改用户某个文件执行权限
其中r、w和x分别表示读取、写入和执行权限(4、2、1也可分别表示相同权限);u、g和o分别表示文件所有者、所有者所属的组以及其他组的用户;+、-分别表示授予和收回权限。

[root@localhost ~]# ll        		查看文件访问权限(也可以采用[root@localhost ~]# ls -l)
[root@localhost ~]# vi 1.sh	 		创建一个名为1.sh的文件
[root@localhost ~]# ll 1.sh   		查看1.sh文件的访问权限
-rw-r--r--. 1 root root 101 May  7 20:43 1.sh   除去第一个-后面每三个为一组,依次是文件所有者、所有者所属组以及其他组用户
[root@localhost ~]# chmod u+x 1.sh  给所有用户添加执行权限(也可以使用[root@localhost ~]# chmod 744 1.sh)
[root@localhost ~]# ll 1.sh
-rwxr--r--. 1 root root 101 May  7 20:43 1.sh

使用数字修改时777是一个特殊的权限,对所有用户授予了所有权限。

接收用户输入的参数
变量名说明
#n表示传递给脚本的第n个参数,例如$1 表示第1个参数,$2表示2个参数…
$#命令行参数的个数
$0当前脚本的名称
$*以“参数1 参数2 参数3…”的形式返回所有参数的值(将所有参数一一个字符串的形式返回)
$@以“参数1” “参数2” "参数3”…的形式返回所有参数的值(如果用户传递的参数中包含空格或者其他的特殊字符,需要使用 @ 来 获 取 所 有 的 参 数 的 值 , 不 能 使 用 @来获取所有的参数的值,不能使用 @来获取所有的参数的值,不能使用*)
$_保存之前执行的命令的最会一个参数
#! /bin/sh

#传递脚本参数
echo "$# 个命令行参数"
echo 当前脚本名称 "$0"
echo "$*"
echo "$@"      
[root@localhost ~]#  . test01.sh a b "c d e "
3 个命令行参数
当前脚本名称 bash
a b c d e 
a b c d e           

注意:对于包含空白符或存在特殊字符的参数,需使用单引号或者双引号进行传递。(由单引号或双引号引起来的字符串作为一个参数传递,传递时会自动去掉引号)关于用户传递参数超过9个的输入后续更新会把链接粘贴在这。

参数扩展

前面我们使用的 ls -l 命令中的 -l 就是 ls 命令的一个参数,用于以长格式的方式显示当前目录内容。采用-作为连字符。而Shell命令中可采用getopts命令实现相同功能。

第一个Shell程序:Hello World!

任何一门语言的开始都是经典的Hello World!所以让我们也来实现一下简单的Hello World!程序吧。首先在终端利用vi编辑器创建一个Hello_World.sh的脚本程序,然后进入后在英文状态单机 i 进入编辑模式,然后输入如下代码,输入完成后单击 Esc 在输入:wq,保存退出。

#! /bin/bash  指定命令解读器
 
#输出字符串   	#注释符
echo "Hello World!"                          

其中#! /bin/bash用于告诉使用哪一个Shell执行当前程序。#!标识后指定解释器的绝对路径,即bash Shell的绝对路径。单独出现的#表示行注释,而:<

Shell命令的执行

Shell程序存在三种执行方式

第一种就是之前提到的修改权限使其直接执行
第二种调用Shell脚本解释器执行
[root@localhost ~]# /bin/bash test01.sh
第三种通过source命令执行
[root@localhost ~]# source Hello_World.sh 

注:一二本质相同,一是直接指定解释器,二是先调用解释器再解释脚本文件。
Shell 程序退出状态

在Unix或者Linux中,对于每个命令都会返回一个范围在0~255的退出状态码。通常情况,成功退出的状态码为0,返回非0值基本为不成功状态,即错误码。用户可通过exit语句指定退出状态码。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/868050.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号