Lnux之Shell之shell是什么和shell变量的使用

本文介绍了Shell的基础知识,包括Shell的定义和作用,如何编写并运行Shell脚本,以及变量的定义、使用、只读设置和删除。此外,还详细阐述了权限管理,如如何改变文件权限以执行脚本,并展示了尝试修改只读变量时的错误示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:什么是shell

 shell是用C语言编写的程序,它是用户使用Linux的桥梁。

它既是一种命令语言,又是一种程序设计语言。

1.编写一个shell脚本(使用vi或者vim):
 

#!/bin/bash
echo "hello world!" #输出

#!是一个约定标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种shell

运行shell

一般情况下,权限是不够的,需要:

chmod a+x ./name.sh
chmod 777 ./name.sh
chmod +x ./name.sh

我使用过这三个,都能使name.sh的权限改变,且都能执行

如有不懂chmod的童鞋,点这里查看

二:变量

定义一个变量:

name="1230"#注意变量名和等号之间不能有空格

命名变量的规则:

1.命名只能使用英文字母,数字和下划线,不能以数字开头。
2.中间不能有空格(等号两边都不能有空格),可以使用下划线 _。
3.不能使用标点符号。
4.不能使用bash里的关键字(可用help命令查看保留关键字)。

使用变量:

在变量名前面加美元符

如:

#!/bin/bash
name='123'
echo $name
echo ${name}#或者这样,推荐

只读变量:

使用readonly命令可以将变量定义为只读变量,而只读变量的值不能被改变

如:

#!/bin/bash
name='123'
readonly name
echo $name
name=123

要改变name的变量的时候会报错:

如使用上述语句来运行,结果如下:

[root@master ~]# ./1.sh
123
./1.sh: line 5: name: readonly variable

它会报错,所以只读变量的值不能被改变
 

删除变量:

使用unset命令可以删除变量

如:

#!/bin/bash
name='123'
echo $name#有输出
unset name
echo $name#无输出
#!/bin/bash
name='123'
echo $name
readonly name
unset name 
echo $name

发现,只读变量无法取消设置,也就是说,unset不能删除只读变量

最后:
当运行shell时,会同时存在三种变量:
1.局部变量:仅对当前shell有效,在其他shell中无效
2.环境变量:所有shell都能访问环境变量,有些程序需要环境变量来保证正常运行
3.shell变量:是由shell程序设置的特殊变量。有一部分是局部变量,有一部分是环境变量,这些变量保证了shell的正常运行
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

看书会睡觉

谢谢您的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值