Shell学习笔记


Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁

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

开始

创建脚本文件

新建一个扩展名为.sh的文件test.sh, sh代表shell

test.sh文件内容如下:

#!/bin/bash
echo "Hello Shell"

#! 是一个约定俗成的标记, 用于告诉系统使用哪个解释器来执行这个脚本.
echo 命令是用于向终端输出文本信息,也可用于向文件中写入数据

运行shell脚本

运行shell脚本的方式两种

  • 通过可执行文件运行

需要给脚本文件添加可执行权限

# 在 test.sh 文件所在的文件夹下, 执行以下命令
chmod +x ./test.sh

这里需要注意的是, 一定要写成./test.sh而不是test.sh, 否责系统可能会找不到脚本文件, ./的意思是 指定在当前文件路径下查找文件

  • 作为解释器参数
/bin/sh test.sh
/bin/php test.php

这种方式下,在文件第一行添加标记也没有效果(因为你已经指定了解释器来运行脚本)

变量

规则:

  1. 定义变量时,变量名不加美元符号
  2. 变量名和等号之间不能有空格
  3. 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
  4. 中间不能有空格,可以使用下划线(_)。
  5. 不能使用标点符号。
  6. 不能使用bash里的关键字(可用help命令查看保留关键字)。

示例:

有效命名:

RUNOOB
LD_LIBRARY_PATH
_var
var2

无效命名:

?var=123
user*name=runoob

显示赋值

your_name="runoob.com"

通过语句赋值

for file in `ls /etc`
# 或
for file in $(ls /etc)

以上语句, 列出/etc路径下的所有文件名,赋值给file

使用变量

使用变量,只需要在变量前面加一个$符号

name="shell"
echo $name
echo ${name}

$name${name}都是可以的, {}是可选的, 它的作用是帮助解释器来识别变量边界的, 比如:

for skill in Ada Coffe Action Java; do
    echo "I am good at ${skill}Script"
done

如果不加 {} 则解释器认为$skillScript是一个变量(内容为空),

推荐给所有的变量加上{},养成好的编程习惯

只读变量

已经定义的变量可以被重新赋值, 只读变量除外

定义方式为: 在变量前面加上 readonly

readonly name="Shell"
name="jason" # 这里会报错  error: NAME: This variable is read only.

删除变量

unset name

unset 命令不能删除只读变量。 删除之后不能使用

参考

菜鸟教程

结语

学习一门技术, 开始的时候不要纠结各种看不懂的语法、不钻牛角尖, 先培养兴趣, 再循序渐进.


Author: Jason
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source Jason !
  TOC