【Linux】| Shell教程-变量
共 2862字,需浏览 6分钟
·
2021-04-25 12:45
市面上Linux学习资料太多,实在不用再多做介绍,所以这篇文章主要是做一些自己认为是比较重要的笔记记录,遇到的一些问题及解决办法,好的学习资源分享等等。
本人以菜鸟教程作为学习入门
本文只列出示例用法,更多用法自行搜索 或者man 命令
例如man useradd
或者命令 --help
例如useradd --help
@
CSDN地址:
本次更新(往期查看CSDN):
Shell教程
Shell教程
shell教程参考地址在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash。
#! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。
第一个shell脚本
#!/bin/bash
echo "Hello World !"
运行 Shell 脚本有两种方法:
1、作为可执行程序 将上面的代码保存为 test.sh,并 cd 到相应目录:
chmod +x ./test.sh #使脚本具有执行权限
./test.sh #执行脚本
2、作为解释器参数 这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名,如:
/bin/sh test.sh
/bin/php test.php
变量
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:
命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。 中间不能有空格,可以使用下划线(_)。 不能使用标点符号。 不能使用bash里的关键字(可用help命令查看保留关键字)。
使用变量
使用一个定义过的变量,只要在变量名前面加美元符号即可,如:
your_name="blyang"
echo $your_name
echo ${your_name}
推荐给所有变量加上花括号,这是个好的编程习惯。
只读变量
使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
#!/bin/bash
myUrl="https://www.google.com"
readonly myUrl
myUrl="https://www.baidu.com"
[root@poplang shell_code]# chmod +x ./test.sh
[root@poplang shell_code]# ./test.sh
./test.sh: line 4: myUrl: readonly variable
删除变量
your_name="blyang"
unset your_name
变量类型
运行shell时,会同时存在三种变量:
局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。 shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
Shell 字符串
单双引号
单双引号都可以表示字符串,建议用双引号,双引号的优点:
双引号里可以有变量 双引号里可以出现转义字符
your_name='blyang'
str="Hello, I know you are \"$your_name\"! \n"
echo -e $str
此时可以输出Hello, I know you are "blyang"!
,若换成单引号则不行,另外,echo -e
指输出并处理特殊字符,比如示例最后的换行符\n
拼接字符串
your_name="blyang"
# 使用双引号拼接
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1
# 使用单引号拼接
greeting_2='hello, '$your_name' !'
greeting_3='hello, ${your_name} !'
echo $greeting_2 $greeting_3
获取字符串长度
string="abcd"
echo ${#string} #输出 4
提取子字符串
greeting="hello, "$your_name" !"
echo ${greeting:0:5}
# 输出hello
查找子字符串
echo `expr index "$greeting" b`
输出b
第一次出现的位置
猜你喜欢