如何编写shell 脚本1-如何运行脚本以及变量基础

shell 脚本编写-运行脚本以及变量操作

声明: 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章。本文只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频 微信公众号:泷羽sec

一、如何运行脚本

先来了解下运行脚本的几种方式

  1. 赋予执行权限:给文件加权有两种方式,都是使用chmod 指令,chmod +x或者chmod 777两种
┌──(root㉿kali-linux-2024-2)-[/]
└─# vim 1.sh                    
┌──(root㉿kali-linux-2024-2)-[/]
└─# ./1.sh
zsh: 权限不够: ./1.sh                         
┌──(root㉿kali-linux-2024-2)-[/]
└─# chmod +x 1.sh    #这里也可以使用chmod 777 1.sh  效果一样                
┌──(root㉿kali-linux-2024-2)-[/]
└─# ls -la 1.sh
-rwxrwxr-x 1 root root 12 11月20日 16:31 1.sh
┌──(root㉿kali-linux-2024-2)-[/]
└─# ./1.sh
hello

2.** 使用shell解释器**:即通过shsource这两个指令中一个来进行,两者区别在于sh的输出没有颜色,而source带有颜色例如:

#先编辑一个2.sh脚本,在里面输入相关指令这里用ls -a来示范
vim 2.sh  #进入编辑页面
echo hello  #在2.sh中写
ls -a  #在2.sh中写
#这个时候可以查看一下会发现2.sh并没有执行权限,直接使用sh
sh 2.sh
#会发现他的输出不仅仅有hello还有ls -a的运行结果,只是颜色单一,换成source会不一样如下图

二、变量的使用

1.变量的声明和使用

变量的声明和使用都较为简单,这里举例说明一下:

┌──(root㉿kali-linux-2024-2)-[/]
└─# name="xiaoming"
┌──(root㉿kali-linux-2024-2)-[/]
└─# echo $name
xiaoming
┌──(root㉿kali-linux-2024-2)-[~]
└─# name="xiaoming" age="3"                                             
┌──(root㉿kali-linux-2024-2)-[~]
└─# echo my name is $name ,and my age is $age years old
my name is xiaoming ,and my age is 3 years old
                                                    

echo 后面带或不带双引号包裹要打印的内容,效果是一样的,但是单引号的效果会不一样,使用单引号会将变量作为字符串一样直接输出,例如:

# 不使用引号
┌──(root㉿kali-linux-2024-2)-[~]
└─# echo my name is $name ,and my age is $age years old
my name is xiaoming ,and my age is 3 years old
#使用双引号
┌──(root㉿kali-linux-2024-2)-[~]
└─# echo "my name is $name ,and my age is $age years old"  
my name is xiaoming ,and my age is 3 years old                    #使用单引号
┌──(root㉿kali-linux-2024-2)-[~]
└─# echo 'my name is $name ,and my age is $age years old'
my name is $name ,and my age is $age years old

注意变量和后面的字符要有空格,负责会认为是一个新的变量

例如:

┌──(root㉿kali-linux-2024-2)-[~]
└─# echo my name is $name ,and my age is $ageyears old  
my name is xiaoming ,and my age is old
                                             

定义变量的时候不要带空格,不要使用数字开头

例如:

┌──(root㉿kali-linux-2024-2)-[~]
└─# 1name="xiaoming"
1name=xiaoming:未找到命令

┌──(root㉿kali-linux-2024-2)-[~]
└─# name age="xiaoming 3"  
找不到命令 “name”
                                      

要用_来进行连接一下比如:

┌──(root㉿kali-linux-2024-2)-[~]
└─# name_age="xiaoming 3"
                                                                 #变量前要记得带$符                           
┌──(root㉿kali-linux-2024-2)-[~]
└─# echo name_age                                     
name_age
                                                                                            
┌──(root㉿kali-linux-2024-2)-[~]
└─# echo $name_age
xiaoming 3

2. 查看已经定义的变量

这里使用的指令是set,直接输入set会发现返回的变量非常多不利于查找,这个时候使用set |grep 指定变量名就可以很方便的找到

3.删除变量

使用unset name对变量进行删除,运行完以后会发现,name变量不存在啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值