【Linux】| Shell教程-变量

Python小灶

共 2862字,需浏览 6分钟

 ·

2021-04-25 12:45

市面上Linux学习资料太多,实在不用再多做介绍,所以这篇文章主要是做一些自己认为是比较重要的笔记记录,遇到的一些问题及解决办法,好的学习资源分享等等。

本人以菜鸟教程作为学习入门

本文只列出示例用法,更多用法自行搜索 或者man 命令例如man useradd或者命令 --help 例如useradd --help@

CSDN地址:



本次更新(往期查看CSDN):

  • Shell教程

    • 第一个shell脚本

    • 运行 Shell 脚本有两种方法:

    • 变量

      • 使用变量

      • 只读变量

      • 删除变量

      • 变量类型

      • 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时,会同时存在三种变量:

  1. 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
  2. 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
  3. 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第一次出现的位置


猜你喜欢

                                

                                           


浏览 18
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报