shell学习记录(2)

shell变量

1、脚本语言不用定义变量类型,shell是脚本语言,所以不用定义变量类型。

注意:即使你将整数、小数 赋值给变量,它们也会被视为字符串,这一点和大部分的编程语言不同。

2、变量定义分成三种:

variable=value       (没有空格、tab缩进时可以用)

variable=‘value’       (有空格、tab缩进时用;)    (单引号就是直接以字符串的形式输出所有引号里面的东西)

variable=“value”        (有空格、tab缩进时用;)(两者区别是双引号会先解析引号里的东西,再进行输出 或别的操作)

最好用双引号括起来!!!!

(1)对于variable 变量名:

它的命名规范和大部分编程语言都一样:

  • 变量名由数字、字母、下划线组成;
  • 必须以字母或者下划线开头
  • 不能使用 Shell 里的关键字(通过 help 命令可以查看保留关键字)。

(2)变量的使用:

【1】  $  {} 

name=“li sir”       (=号左右切记不能有空格!!!

echo $name         (使用一个定义过的变量,前面需要加  $    符号

echo “hello ${name} ,welcome”     (加花括号是为了帮助解释器识别变量的边界,推荐给所有变量加上花括号{ },这是个良好的编程习惯!!!

【2】  ()内的命令可以作为一个变量赋值给另一个变量  (常用括号形式的,另一种忽略就好)

我在 code 目录中创建了一个名为 log.txt 的文本文件,用来记录我的日常工作。下面的代码中,使用 cat 命令将 log.txt 的内容读取出来,并赋值给一个变量,然后使用 echo 命令输出。

[mozhiyan@localhost ~]$ cd code
[mozhiyan@localhost code]$ log=$(cat log.txt)
[mozhiyan@localhost code]$ echo $log
[2017-09-10 06:53:22] 严长生正在编写Shell教程
[mozhiyan@localhost code]$ log=`cat log.txt`
[mozhiyan@localhost code]$ echo $log
[2017-09-10 06:53:22] 严长生正在编写Shell教程
[mozhiyan@localhost code]$ 

(3)只读变量:

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

下面的例子尝试更改只读变量,结果报错:

  1. #!/bin/bash
  2.  
  3. myUrl="http://see.xidian.edu.cn/cpp/shell/"
  4. readonly myUrl
  5. myUrl="http://see.xidian.edu.cn/cpp/danpianji/"

运行脚本,结果如下:

/bin/sh: NAME: This variable is read only.

(4)删除变量:unset

使用 unset 命令可以删除变量。语法:

unset variable_name

变量被删除后不能再次使用;unset 命令不能删除只读变量。

举个例子:

  1. #!/bin/sh
  2.  
  3. myUrl="http://see.xidian.edu.cn/cpp/u/xitong/"
  4. unset myUrl
  5. echo $myUrl

上面的脚本没有任何输出。

(5)变量类型:

运行shell时,会同时存在三种变量:

1) 局部变量

局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。

2) 环境变量

所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。

3) shell变量

shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

 

 

出处:http://c.biancheng.net/cpp/view/6999.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值