shell 变量-shell笔记1

shell 一门脚本编程语言,有时又叫bash,写在后缀为.sh的文件中,在终端中执行,。

自己学习与练习可以在terminal终端通过sh test.sh或者直接将写入test.sh里面的code 在 https://www.runoob.com/try/runcode.php?filename=helloworld&type=bash上运行。

 

目录

常见特殊变量与含义

shell 变量

使用变量

单引号字符串的限制:


shell 注释

单行用# ,多行以:<<EOF(任意符号)开始,最后一行用同样的EOF符号结束。

shell命令执行

sh -x test.sh  加了-x 参数,在terminal下可以看test.sh里面转换后的命令逐步的执行情况。

对于不懂的命令可以直接在mac 的terminal终端中运行用man命令查看其定义,比如对于dirname,则在mac终端中输入man dirname 则可以看到函数dirname定义等。然后摁住q则退出提示。

 

常见特殊变量与含义

特殊变量列表
变量含义
$0当前脚本的文件名
$n传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是1,第二个参数是1,第二个参数是2。
$#传递给脚本或函数的参数个数。
$*传递给脚本或函数的所有参数。
$@传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。
$?上个命令的退出状态,或函数的返回值。
$$当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。

 

shell 变量

变量定义注意=之间两侧不能有空格

your_name="runoob.com"

注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:

  • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
  • 中间不能有空格,可以使用下划线(_)。
  • 不能使用标点符号。
  • 不能使用bash里的关键字(可用help命令查看保留关键字)。

 

使用变量

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

your_name="qinjx"
echo $your_name
echo ${your_name}

 

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

shell函数定义的变量默认是global的,其作用域从“函数被调用时执行变量定义的地方”开始,到shell结束或被显示删除处为止。函数定义的变量可以被显示定义成local的,其作用域局限于函数内。但请注意,函数的参数是local的。

(3)如果同名,Shell函数定义的local变量会屏蔽脚本定义的global变量。

#!/bin/bash

function Hello()
{
        local text="Hello World!!!" #局部变量

        echo $text
}

Hello

单引号字符串的限制:

  • 单引号字符串中的变量是无效的;
  • 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。

注意赋值的=两侧不能有空格,这不同与Python习惯性有空格,此处有严格要求不能有空格。

 

字符串使用双引号的优点:

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

如:

your_name='runoob'
str="Hello, I know you are \"$your_name\"! \n"
echo -e $str

#!/bin/bash
your_name="runob"
#使用双引号拼接

greeting1="hello,${your_name} !"
echo  ${greeting1}



#使用单引号拼接
greeting3='hello,${your_name} !'
echo ${greeting3}

输出结果为:

Hello, I know you are "runoob"!
hello,runob !
hello,${your_name} !

 

其中的echo 命令,用于在terminal终端显示输出。格式为:

echo  要输出的内容,注意中间要有空格。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值