linux学习之shell(上)

本文介绍了Shell脚本的基础知识,包括echo命令的使用方法、变量的定义与引用、特殊变量的作用、算术表达式的处理及字符串操作等内容。

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

1、echo的用法

    输出一行文本到终端

   echo my name is phf

  输出变量的值

 声明变量x并给它赋值为10

  1. $ x=10

会输出它的值:

  1. $ echo The value of variable x = $x
  2. The value of variable x =10

  输出环境变量的值  echo $PATH  



shell

   1、开头以#!  开始  

    #!/bin/sh

2、#作为注释

3、编辑shell脚本文件,并保存为  文件名.sh

4、修改该shell文件的可执行权限

5、使用相对路径执行脚本文件

sh里没有多行注释,只能每一行加一个#号

如果要注释一大段代码  有一个技巧

可以把这一段要注释的代码用一对花括号括起来,定义成一个函数,没有地方调用这个函数,这块代码就不会执行,达到了和注释一样的效果。

nonExec(){

x=1

y=2

sum=`expr $x +$y`

}

二、

 (1)定义变量

   var1=1

  var2="hello world"

注意:变量名与等号之间不能有空格

变量名的命名须遵循如下规则:

  • 首个字符必须为字母(a-z,A-Z)。
  • 中间不能有空格,可以使用下划线(_)。
  • 不能使用标点符号。
  • 不能使用bash里的关键字(可用help命令查看保留关键字)。

(2)使用变量

 使用一个定义过的变量,只要在变量名前面加美元符号($)即可

比如 var=hello

    echo "var is $var" 或者 echo "var is ${var}"

  变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界

推荐给所有变量加上花括号,这是个好的编程习惯。

(3)已定义的变量,可以被重新定义

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

比如 var="hello"

readonly var

var="nihao"  //提示错误  var是只读属性

(5)使用 unset 删除变量 

 var=1

unset var  //删除变量后var没有值

不能删除只读变量


三、

  (1)特殊变量

    $表示该shell的进程id   显示当前shell的进程id  echo $$

 

(2)shell表达式 

    var1=`expr 2 + 2` 

  x=1

y=2

   var2=`expr $x + $y `

两点注意:

  • 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。
  • 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边。

+ - / %   注意  乘法使用 \*

(3) 字符串

 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。

比如 var='hello world'

单引号字符串的限制:
  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
  • 单引号字串中不能出现单引号(对单引号使用转义符后也不行)。
但是双引号中的变量是有效的 ,比如

x=2

var="a b $x"

echo $var

会输出 a b 2

然而 如果是var='a b $x'

会输出a b $x

双引号的优点:

  • 双引号里可以有变量
  • 双引号里可以出现转义字符
输出字符串长度

  var="hello"

echo "the len of var is ${#var}"

输出5

提取子字符串

var="abcdefghijk"

var2=${var:1:4}

会输出 bcde    //使用#!/bin/bash  这个shell运行才对


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值