Shell脚本1 -- 脚本执行与临时变量使用

声明:
本文的学习内容来源于B站up主“泷羽sec”视频“shell脚本(1)脚本创建执行与变量使用”的公开分享,所有内容仅限于网络安全技术的交流学习,不涉及任何侵犯版权或其他侵权意图。如有任何侵权问题,请联系本人,我将立即删除相关内容。
本文旨在帮助网络安全爱好者提升自身安全技能,并严格遵守国家法律法规。任何人利用本文中的信息从事违法活动,均与本文作者和“泷羽sec”无关。请读者自觉遵纪守法,合理合法使用相关知识。


1 脚本编写

首先建立一个1.sh文件

vim 1.sh

可以利用#! /bin/bash#! /bin/dash#! /bin/sh这三种其实不管用哪种脚本解释器,最后调用的都还是dash
比如ls -l /bin/sh发现调用的还是dash
Pasted image 20241115094442
修改1.sh,添加如下代码,:wq保存

echo "hello world"

Pasted image 20241115094651


2 脚本运行

2.1 方法一

修改文件权限,给拥有者添加运行权限

chmod u+x 1.sh

Pasted image 20241115094903
运行一下1.sh

./1.sh

Pasted image 20241115094950

2.2 方法二

在没有权限的情况下,可以使用bashsh或者dash运行
Pasted image 20241115100709

当你使用 bash script.shsh script.shdash script.sh 命令时,实际上是通过对应的解释器程序(如 bashshdash)去读取并执行 script.sh 文件中的内容。这种情况下,操作系统并不要求 script.sh 本身具备执行权限,因为是解释器进程在执行脚本文件,而不是直接执行文件。
解释器只需要对脚本文件有读取权限chmod +r),而不需要执行权限,因此即使脚本文件没有执行权限,也能运行。

2.3 方法三

修改文件加一行命令

ls -l

Pasted image 20241115101434
利用source命令会对输出结果加深标注
Pasted image 20241115101943


3 临时变量

3.1 临时变量命名规则

  1. 大小写敏感
    • Shell变量区分大小写,例如 varVAR 是两个不同的变量。
  2. 以字母或下划线开头
    • 变量名必须以字母(A-Z 或 a-z)或下划线 _ 开头,不能以数字或其他特殊字符开头。
    • 正确示例:_tempVar, var1
    • 错误示例:1var, -temp
  3. 仅包含字母、数字和下划线
    • 变量名只能由字母(A-Z 或 a-z)、数字(0-9)和下划线 _ 组成,不能包含其他符号或空格。
    • 正确示例:temp_var, TEMP123
    • 错误示例:temp-var, temp var
  4. 避免使用Shell保留字
    • 不要使用Shell的关键字或内置命令(如 if, then, else, do, done, case 等)作为变量名,以免引发错误。

3.2 变量声明

定义一个name变量,等号左右两边不能有空格

name="xiaoyu"

输出name变量

echo $name

定义一个age变量

age="27"

输出name变量

echo $age

复杂点的比如说

echo my name is $name, and my age is $age years old

Pasted image 20241118100318
加双引号和不加的效果是一样的

echo "my name is $name, and my age is $age years old"

Pasted image 20241118100327
加单引号会吧$name$age直接当字符串输出

echo 'my name is $name, and my age is $age years old'

Pasted image 20241118100333如果想变量和字符之间没有空格,可以将变量用双引号括起来

echo "my name is $name, and my age is "$age"years old"

Pasted image 20241118100451
或者使用不能作为变量名的符号将变量和字符间隔开,例如{ } ' ; :等等都可以

echo "my name is $name, and my age is {$age}years old"

Pasted image 20241118100913

3.2 变量查看

使用set命令查看所有变量

set

配合grep查找变量

set | grep name

Pasted image 20241118104403

3.3 变量删除

删除指定变量

unset name

再次查找就没有了

set | grep name

Pasted image 20241118104524

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值