精华内容
下载资源
问答
  • PHP中删除变量与检测变量

    千次阅读 2018-03-26 11:28:24
    1、删除变量:语法:unset($变量名);2、检测变量语法:isset($变量名);检测变量是否存在,只有true和false,浏览器中显示的是0或者1.要显示true或者false时候,则使用var_dump(isset($变量名))进行判断。var_dump()...
    1、删除变量:
    语法:
    unset($变量名);
    2、检测变量
    语法:isset($变量名);检测变量是否存在,只有true和false,浏览器中显示的是0或者1.
    要显示true或者false时候,则使用var_dump(isset($变量名))进行判断。

    var_dump()输出内容的长度,类型,值,主要用于程序调试


    展开全文
  • 变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据。脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell 变量也遵循这个规则。 在 Bash shell 中,每一个变量的值都是字符串,无论...
    变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据。脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell 变量也遵循这个规则。
    

    在 Bash shell 中,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。

    这意味着,Bash shell 在默认情况下不会区分变量类型,即使你将整数和小数赋值给变量,它们也会被视为字符串,这一点和大部分的编程语言不同。
    例如在 C/C++ 中,变量分为整数、小数、字符串、布尔等多种类型。
    当然,如果有必要,你也可以使用 declare 关键字显式定义变量的类型,但在一般情况下没有这个需求,Shell 开发者在编写代码时自行注意值的类型即可。

    定义变量

    Shell 支持以下三种定义变量的方式:

    variable=value
    variable='value'
    variable="value"

    variable 是变量名,value 是赋给变量的值。如果 value 不包含任何空白符(例如空格、Tab缩进等),那么可以不使用引号;如果 value 包含了空白符,那么就必须使用引号包围起来。使用单引号和使用双引号也是有区别的,稍后我们会详细说明。

    注意,赋值号的周围不能有空格,这可能和你熟悉的大部分编程语言都不一样。

    Shell 变量的命名规范和大部分编程语言都一样:
    • 变量名由数字、字母、下划线组成;
    • 必须以字母或者下划线开头;
    • 不能使用 Shell 里的关键字(通过 help 命令可以查看保留关键字)。

    变量定义举例:
       
    1. url=http://c.biancheng.net
    2. echo $url
    3. name='C语言中文网'
    4. echo $name
    5. author="严长生"
    6. echo $author

    使用变量

    使用一个定义过的变量,只要在变量名前面加美元符号 $ 即可,如:
       
    1. author="严长生"
    2. echo $author
    3. echo ${author}
    变量名外面的花括号 { } 是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:
       
    1. skill="Java"
    2. echo "I am good at ${skill}Script"
    如果不给 skill 变量加花括号,写成 echo "I am good at $skillScript" ,解释器就会把 $skillScript 当成一个变量(其值为空),代码执行结果就不是我们期望的样子了。

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

    修改变量的值

    已定义的变量,可以被重新赋值,如:
       
    1. url="http://c.biancheng.net"
    2. echo ${url}
    3. url="http://c.biancheng.net/cpp/shell/"
    4. echo ${url}
    第二次对变量赋值时不能在变量名前加 $ ,只有在使用变量时才能加 $

    单引号和双引号的区别

    前面我们还留下一个疑问,定义变量时,变量的值可以由单引号' '包围,也可以由双引号" "包围,它们到底有什么区别呢?不妨以下面的代码为例来说明:
       
    1. #!/bin/bash
    2. url="http://c.biancheng.net"
    3. website1='C语言中文网:${url}'
    4. website2="C语言中文网:${url}"
    5. echo $website1
    6. echo $website2
    运行结果:
    C语言中文网:${url}
    C语言中文网:http://c.biancheng.net

    以单引号 ' ' 包围变量的值时,单引号里面是什么就输出什么,即使内容中有变量和命令(命令需要反引起来)也会把它们原样输出。这种方式比较适合定义显示纯字符串的情况,即不希望解析变量、命令等的场景。

    以双引号" "包围变量的值时,输出时会先解析里面的变量和命令,而不是把双引号中的变量名和命令原样输出。这种方式比较适合字符串中附带有变量和命令并且想将其解析后再输出的变量定义。

    严长生的建议:如果变量的内容是数字,那么可以不加引号;如果真的需要原样输出就加单引号;其他没有特别要求的字符串等最好都加上双引号,定义变量时加双引号是最常见的使用场景。

    将命令的结果赋值给变量

    Shell 也支持将命令的执行结果赋值给变量,常见的有以下两种方式:

    variable=`command`
    variable=$(command)

    第一种方式把命令用反引号包围起来,反引号和单引号非常相似,容易产生混淆,所以不推荐使用这种方式;第二种方式把命令用 $() 包围起来,区分更加明显,所以推荐使用这种方式。

    例如,我在 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]$ 

    只读变量

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

    下面的例子尝试更改只读变量,结果报错:
       
    1. #!/bin/bash
    2. myUrl="http://see.xidian.edu.cn/cpp/shell/"
    3. readonly myUrl
    4. myUrl="http://see.xidian.edu.cn/cpp/danpianji/"
    运行脚本,结果如下:
    /bin/sh: NAME: This variable is read only.

    删除变量

    使用  unset  命令可以删除变量。语法:
       
    1. unset variable_name
    变量被删除后不能再次使用;unset 命令不能删除只读变量。

    举个例子:
       
    1. #!/bin/sh
    2. myUrl="http://see.xidian.edu.cn/cpp/u/xitong/"
    3. unset myUrl
    4. echo $myUrl
    上面的脚本没有任何输出。

    变量类型

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

    1) 局部变量

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

    2) 环境变量

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

    3) shell变量

    shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
    展开全文
  • 从 Mat-File FILENAME 中删除变量 VAR1、VAR2...。 如果 FILENAME 没有扩展名 RMVAR 查找 FILENAME.mat RMVAR('Filename','VAR1','VAR2' ...) 做同样的事情。 例子: % 创建一个包含 2 个变量的文件“myfile.mat”...
  • shell之删除变量

    千次阅读 2018-09-26 08:17:40
    使用unset可以删除变量 #!/bin/sh myUrl="http://www.baidu.com" unset myUrl echo $myUrl 执行后没有任何输出

    使用unset可以删除变量

    #!/bin/sh
    
    myUrl="http://www.baidu.com"
    unset myUrl
    echo $myUrl
             

    执行后没有任何输出

    展开全文
  • shell变量是支持自定义的(1)定义变量(等号两边不能有空格) eg:name="Lucy"定义变量:变量名=”变量值”,注意: 变量名前面不要加$,不需要指定变量类型 变量名和等号之间不能有空格变量命名规则:字下美人其后数 ...

    shell变量是支持自定义的

    (1)定义变量(等号两边不能有空格)
    eg:

    name="Lucy"

    定义变量:变量名=”变量值”,

    注意:
    变量名前面不要加$,不需要指定变量类型
    变量名和等号之间不能有空格

    变量命名规则:字下美人其后数
    (字–字母)(下–下划线)(美人–美元符号)(其后–后面)(数–数字)
    首字符必须为字母(a-z,A-Z)
    中间不能有空格,可以有下划线_

    不能使用标点符号
    不能用bash里的关键字(用help命令可以查看保留关键字)

    (2)使用变量
    变量引用:变量名前加 $
    eg1:

    name="Lucy"
    echo "她叫: $name hahah"

    eg2:

    name="Lucy"
    echo "她叫: ${name} hahah"

    注意:
    变量引用:给变量名加{}或者 在$前面加空格,变量名后面加空格;或标点符号;不这样做有时候无法识别变量
    (3)变量重命名(已定义的变量可以重新定义)

    name="Lucy"
    echo ${name}
    name="小琪"
    echo ${name}

    注意:二次赋值不能写成 name=""
    (4)只读变量
    用readonly命令将普通变量定义成为只读变量,只读变量的值不能修改
    eg:(改为只读变量和赋值同时进行正确,否则错误)

    #!/bin/bash
    readonly Myname="Lucy"
    echo ${Myname}

    eg:(尝试更改只读变量)

    #!/bin/bash
    Myname="Lucy"
    echo ${Myname}
    readonly Myname
    Myname="明明"
    echo ${Myname}

    运行结果:

    [root@h data]# ./n1.sh 
    Lucy
    ./n1.sh: line 5: Myname: readonly variable
    Lucy

    错误:只读变量无法识别

    ./n1.sh: line 5: Myname: readonly variable
    Lucy

    (5)删除变量
    使用unset命令删除变量;
    语法:
    unset 变量名
    eg:(删除普通变量)

    #!/bin/bash
    
    name="小琪"
    echo ${name}
    unset name
    echo ${name}

    变量删除之后不能再次使用;unset不能删除只读变量

    eg:(删除只读变量)

    #!/bin/bash
    
    name="小琪"
    echo ${name}
    readonly name
    echo ${name}
    unset name
    echo ${name}

    运行结果:(不能删除只读变量)

    ./n3.sh: line 7: unset: name: cannot unset: readonly variable
    小琪

    (6)变量类型
    1局部变量
    在脚本和命令中使用,仅仅在当前shell脚本中有效,其他脚本无法使用该局部变量

    2环境变量
    所有的shell脚本都能访问该变量,环境变量可以自己定义

    3 shell变量
    shell变量是shell脚本的特殊变量

    (7)特殊变量:$$,$0,$1,$*,$@
    1)普通变量和特殊变量
    普通变量:
    字下美人其后数

    特殊变量:包含一些其他符号;例如:$$,$0,$1,$*,$@

    $表示当前shell脚本的进程号PID 25363
    eg:

    #!/bin/sh
    echo $$

    执行结果:

    [root@h data]# /bin/sh ./t.sh 
    25363

    2)特殊变量使用表:
    变量 意义
    $$ 当前shell脚本的进程(PID)25363
    $0 当前shell脚本的文件名
    $n 传递给脚本的参数,n可以写成除0以外的参数,eg:$1表第一个参数;$2表第二个参数
    $* 以一个字符串的形式显示所有参数
    $@ 显示所有参数,加”“后就和$*不一样,(下面案例)
    $? 上一个命令的退出状态,或者函数的返回值。0表示成功 1表失败 如果上一条不是前两种情况是方法,返回一个方法的返回值
    $# 返回传递给脚本的参数个数

    eg1:

    #!/bin/bash
    
    name="小花"
    age=“16”
    sex=“女”
    echo "我是${name},芳龄$age,$sex"
    echo "当前shell脚本的PID:$$"
    echo "当前shell脚本的文件名:$0"
    echo "返回当前shell脚本的第一个参数:$1"
    echo "返回当前shell脚本的第三个参数:$3"
    
    echo "以一个字符串的形式显示所有参数:$*"
    echo "$@"
    echo "显示所有参数:$@"
    
    echo "上一个命令的退出状态:$?"
    echo "返回传递给脚本的参数个数:$#"

    执行结果:这种情况是因为参数不是传进去的

    [root@h data]# /bin/sh ./t1.sh 
    我是小花,芳龄“16”,“女”
    25522
    ./t1.sh
    
    

    显示所有参数:

    0
    0
    

    eg2:vi t2.sh

    echo $$
    echo $0
    echo $1
    echo $3
    echo $*
    echo $@
    echo "显示所有参数:$@"
    echo $?
    echo $#

    执行:/bin/sh t2.sh "a" "b" "c" "d"
    结果:

    [root@h data]# /bin/sh t2.sh "a" "b" "c" "d"
    25544
    t2.sh
    a
    c
    a b c d
    a b c d
    显示所有参数:a b c d
    0
    4

    错误执行方式:

                /bin/sh t2.sh "a b c d"
               /bin/sh t2.sh "a,b,c,d"

    结果:

    [root@h data]# ./a.sh "a b c"
    当前shell脚本的PID:27575
    当前shell脚本的文件名:./a.sh
    返回当前shell脚本的第一个参数:a b c
    返回当前shell脚本的第三个参数:
    以一个字符串的形式显示所有参数:a b c
    a b c
    显示所有参数:a b c
    上一个命令的退出状态:0
    返回传递给脚本的参数个数:1

    3) @的区别?
    eg1:

    echo $*
    echo $@
    执行结果:
    [root@h data]# /bin/sh ./t1.sh "a" "b" "c" "d"
    a b c d
    a b c d

    eg2:

    echo "--------\例一:$*--------"
    for i in "$*";do
    echo $i
    done
    
    echo "--------\例二:$@--------"
    for i in "$@";do
    echo $i
    done

    执行结果:

    [root@h data]# /bin/sh ./t2.sh "a" "b" "c" "d"
    --------\例一:a b c d--------
    a b c d
    --------\例二:a b c d--------
    a
    b
    c
    d

    总结:
    相同点: @:在不使用for循环时,效果都一样,都是一个参数一个参数来显示,eg:” 1"" 2”“ 3"" 4”
    a b c d
    a b c d
    不同点:加for循环
    :() @:把各个参数分开显示(eg:for循环换行显示i)

    4)退出状态
    $? 上一个命令的退出状态,或者函数的返回值。0表示成功 1表失败 如果上一条不是前两种情况是方法,返回一个方法的返回值
    返回值:可以指定 exit n(n可以随便指定一个数值) exit 46

    eg 1:

    exit 3
    echo $?

    执行结果:

    [root@h data]# vi t4.sh
    [root@h data]# /bin/sh ./t4.sh 
    [root@h data]# echo $?
    3
    
    $?还可以表示函数返回值,后面讲函数时讲解

    eg 2:

    #!/bin/bash
    var1=1
    var2=3
    var3=$[$var1+$var2]
    echo the answer is $var3
    echo "执行成功"
    echo $?
    执行:
    [root@h data]# ./t3.sh 
    the answer is 4
    0
    
    展开全文
  • delvarmat 从 MAT 文件中删除变量STATUS = delvarmat(FILENAME,VARIABLE1,...) 删除MAT 文件中的变量。 STATUS = delvarmat(VARIABLE1,...) 从'matlab.mat' 如果 MAT 文件不存在,则 delvarmat 返回 1(失败) 当前...
  • Matlab删除变量

    千次阅读 2019-06-02 22:37:01
    变量赋值后,类型确定 Subscript indices must either be real positive integers or logicals. 下标指数必须是真正的正整数或逻辑值。 必须删除size的值 右键变量delete ...
  • 变量的命名规则: 首个字符必须为字母(a-z,A-Z)。 中间不能有空格,可以使用下划线(_)。 不能使用标点符号。 不能使用bash里的关键字(可用help命令查看保留关键字)。 变量的定义: 定义变量时,变量名...
  • ####################################################### ...1.定义变量时,变量名不加美元($)符号 2.变量名和等号之间不能有空格 3.变量名的命令遵循如下规则:  首个字符必须为字母(a-z / A-Z)
  • Python入门基础篇 No.3 —— 变量的声明_初始化_删除变量_垃圾回收机制 文章目录Python入门基础篇 No.3 —— 变量的声明_初始化_删除变量_垃圾回收机制前言一、变量和简单赋值语句二、删除变量和垃圾回收机制总结 ...
  • linux下定义删除变量

    2013-05-01 11:09:41
    linux下定义删除变量 linux中定义变量的方式为: 变量名=变量值(注意两边没有空格) a=123 //定义一个变量a,值为123 要使用变量的时候,要在变量前面加上$符号,例如回显变量的值: echo $a 将会打印出123...
  • R语言 删除变量rm函数

    千次阅读 2017-08-06 09:40:00
    变量可以通过使用 rm()函数来删除。下面我们删除变量var.3。然后再打印变量时出现异常错误。 rm(var.3) print(var.3) 当上面的代码执行时,它产生以下结果: [1] "var.3" Error in print(var.3) : object 'var....
  • 定义变量时,变量名不加美元符号($),如:$variableName="value"如图: 注意1:1.变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。 2.变量名的命名必须遵循如下规则: * 首个字符必须为字母...
  • linux shell之只读变量,删除变量

    千次阅读 2019-04-05 22:40:12
    shell 编程中可以使用关键字readonly 命令将变量定义为只读变量,只读变量的意思是变量值不能被修改。 如下是shenll 编程中只读变量demo: #!/bin/bash TestURL="www.baidu.com" echo $TestURL readonly TestURL...
  • Linux unset --删除变量或函数

    千次阅读 2016-04-08 11:12:50
    功能说明:删除变量或函数。   语 法:unset [-fv][变量或函数名称]   补充说明:unset为shell内建指令,可删除变量或函数。   参 数:  -f 仅删除函数。   -v 仅删除变量。 范例1:删除环境...
  • R语言关于删除变量与清屏操作

    万次阅读 2019-03-19 17:45:41
    1.删除指定变量(vector) rm(vector) 例: x<-“November” x [1] “November” rm(x) x Error: object ‘x’ not found 2.删除所有变量 rm(list=ls()) 3.清屏命令 Ctrl+L, 或者菜单栏的 编辑—清空控制台 ....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,358,967
精华内容 543,586
关键字:

删除变量