• Shell学习笔记(一)


    1.Shell提示符 #,$

    对于普通用户,base shell 默认的提示符是$,对于超级用户(root用户),base shell 默认提示符是#。该符号表示Shell等待输入命令。

    [root@sijizhen ~]# 

    这种格式包含了以下三个方面的信息:

    • 启动 Shell 的用户名,也即 root;
    • 本地主机名称,也即 sijizhen;
    • 当前目录,波浪号~是主目录的简写表示法。

    2.Shell脚本编写示例

    打开文本编辑器,新建一个文本文件,并命名为 backup.sh。

    扩展名sh代表shell,扩展名并不影响脚本的执行。

    在backup.sh中输入代码

    1 #!/bin/bash
    2 echo "Hello World !"  #这是一条语句

    第一行的#!是约定标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell;后面的/bin/bash就是指明了解释器的具体位置。

    第 2 行的 echo 命令用于向标准输出文件(Standard Output,stdout,一般就是指终端)输出文本。在.sh文件中使用命令与在终端直接输入命令的效果是一样的。

    3.执行Shell脚本

    Shell 脚本也是一种解释执行的程序,可以在终端直接调用(需要使用 chmod 命令给 Shell 脚本加上执行权限),如下所示:

    1 [root@sijizhen ~]# cd /mnt/demo             #切换到 backup.sh 所在的目录
    2 [root@sijizhen demo]# chmod +x ./backup.sh  #使脚本具有执行权限
    3 [root@sijizhen demo]# ./backup.sh           #执行脚本
    4 Hello world

    第 2 行中,chmod +x表示给 backup.sh 增加执行权限。

    第 3 行中,./表示当前目录,整条命令的意思是执行当前目录下的 backup.sh 脚本。如果不写./Linux 会到系统路径(由 PATH 环境变量指定)下查找 backup.sh,而系统路径下显然不存在这个脚本,所以会执行失败。

    通过这种方式运行脚本,第一行一定要写对,好让系统查找到正确的解释器。

    1) 使用点号“.”

    点号用于执行某个脚本,甚至脚本没有可执行权限也可以运行。有时候在测试运行某个脚本时可能并不想为此修改脚本权限,这时候就可以使用.来运行脚本,非常方便。

    编写下面的代码并保存为 backup.sh:

    1 #!/bin/bash
    2 echo "http://c.biancheng.net/shell/"

    如果没有运行权限的话,用./执行就会有报错,但是若在其前面使用点号来执行就不会报错,如下所示:

    1 $ ./backup.sh
    2 bash: .test.sh: Permission denied

    使用.增加 test.sh 的执行权限,就可以正常运行了:

    1 $ . ./backup.sh
    2 http://c.biancheng.net/shell/

    2) 使用 source 命令

    与点号类似,source 命令也可读取并在当前环境中执行脚本,同时还可返回脚本中最后一个命令的返回状态;如果没有返回值则返回 0,代表执行成功;如果未找到指定的脚本则返回 false。

    1 [root@sijizhen demo]# source backup.sh
    2 Hello world

    作为解释器参数

    这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名,如:

    1 [root@sijizhen demo]# /bin/bash backup.sh
    2 Hello world
    脚踏实地,仰望星空。
  • 相关阅读:
    [转]Git忽略规则及.gitignore规则不生效的解决办法
    动漫(杂)
    《计算机图形学》2.5 ~ 2.7 学习笔记
    《计算机图形学》2.4 输入设备 学习笔记
    《计算机图形学》2.2.2 光栅扫描显示处理器
    Android 使用版本控制工具时添加忽略文件方式
    devexpress表格控件gridcontrol设置隔行变色、焦点行颜色、设置(改变)显示值、固定列不移动(附源码)
    详解shape标签
    以向VS 程序打包集成自动写入注册表功能为例,介绍如何实现自由控制安装过程
    C#组件系列——又一款Excel处理神器Spire.XLS,你值得拥有
  • 原文地址:https://www.cnblogs.com/sijizhen/p/10607804.html
Copyright © 2020-2023  润新知