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
脚踏实地,仰望星空。
原文地址:https://www.cnblogs.com/sijizhen/p/10607804.html