声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章
感谢泷羽sec 团队的教学
视频地址:shell脚本(1)脚本创建执行与变量使用_哔哩哔哩_bilibili
本文主要讲解shell脚本的创建、执行和变量的使用。
一、脚本执行
1. 创建和运行脚本的基本方法
-  创建脚本文件: touch 1.sh 
-  编辑脚本内容: vim 1.sh #!/bin/bash echo "hello world"- 解释器声明: 
    - #!/bin/bash、#!/bin/dash、#!/bin/sh 都是用来指定脚本的解释器。
- ls -l /bin/sh 通常会发现 /bin/sh 链接到 dash,所以即使用 sh,多数情况仍是调用 dash。
 
 
- 解释器声明: 
    


-  赋予执行权限并运行脚本: chmod 777 1.sh ./1.sh 
2. 使用解释器直接执行脚本
- 无需赋予执行权限,可以用解释器直接运行: 
 注意:需指定脚本路径或在当前目录下执行。如 /root/1.shsh 1.sh bash 1.sh dash 1.sh

3. 使用 source 命令执行脚本
 
- source 命令在当前 shell 中执行脚本,不会启动子进程: source 1.sh 
- 特点: 
  - 对脚本中的变量定义和修改会直接影响当前 shell 环境。
- 在一些终端工具中,source 命令的提示颜色会加深以标注。
 
二、变量的使用
1. 声明和定义变量
- 变量名规则: 
  - 由字母、数字、下划线组成,不能以数字开头。
- 避免在变量名中使用空格。
 
- 示例: name='GGB' age=18 
2. 使用变量
- 打印变量: echo my name is $name, my age is $age years old echo "my name is $name, my age is $age years old" 加不加引号,打印结果都一样 
- 加引号和不加引号的区别: 
  - 双引号: echo "my name is $name, my age is $age years old"
 效果: 变量会被替换为实际值。 
- 单引号: echo 'my name is $name, my age is $age years old'
 效果: 会直接输出 $name 和 $age,不解析变量。 
 
- 双引号: 
3. 变量拼接
- 直接拼接: echo "my name is $name,my age is $ageyears old"
 问题: $ageyears 被视为一个整体变量名,因为变量ageyears没有被定义,因此打印为空。 
- 使用花括号: echo "my name is $name,my age is ${age}years old"
 效果: 正确拼接,输出 my name is GGB, my age is 18years old。 
- 加双引号: echo "my name is "$name", my age is "$age" years old"
 效果: 与花括号效果相同。 
4. 查看定义的变量
- 查看当前 shell 的所有变量: set 
- 查看特定变量: set | grep name 
5. 删除变量
- 使用 unset删除变量:unset ggb
 删除后变量值为空。 



















