好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

shell笔记之变量 - Linux操作系统:Ubuntu_Centos_Debi


shell笔记之变量

 

Shell代码  

#!/bin/bash  

  

# #开头的行注释  

# shell脚本的第一行一般都是#!/bin/bash 表示由/bin/bash负责解释  

 www.2cto.com  

# 定义变量  

str="string value"  

num=123  

echo str is :\"$str\"  

echo num\'s value is: $num  

  

# 注意:  

# 1、"="两边没有空格,任何空格会导致错误。  

# 2、虽然在定义一个字时可以省略引号,但是当定义的变量值多于一个字时(包含空格或制表符),引号是必须的。  

# 3、虽然通常可以使用双引号,但可能导致错误。使用单引号禁用了成为扩展的bash特性  

    www.2cto.com  

# 参数变量(用单引号禁止来扩展)  

# $0 表示执行的命令本身,如此脚本是 env.sh  

# $1 表示第一个参数, $2表示第二个参数,如此类推;  

# $@ 表示一次引用所有的变量,它扩展成所有用空格分隔开的命令行参数;  

# $# 表示传递给脚本的变量数目;  

echo '$0 is ' $0  

echo '$1 is ' $1  

echo '$2 is ' $2  

echo '$3 is ' $3  

echo '$# is ' $#  

echo '$@ is ' $@  

  

# 环境变量,使用export命令设置,使用unset取消  

export editor=vim  

unset editor  

  

# 变量默认值  

# ${parameter:-word} 如果parameter没有设置或者为空,则shell扩展word并替换结果。parameter的值并没有更改。  

  

# ${parameter:=word} 如果parameter没有设置或者为空,则shell扩展word并将结果指派给parameter。这个值然后被替换。不能用这种方式指派位置参数或特殊参数的值。  

  

# ${parameter:?word} 如果parameter没有设置或者为空,shell扩展word并将结果写入标准错误中。如果没有word则写入一条消息。如果shell不是交互的,则表示存在这个扩展。  

  

# ${parameter:+word} 如果parameter没有设置或者为空,则不作替换  

    www.2cto.com  

unset x  

y="abc def"  

echo "/${x:-'xyz'} /${y:-'xyz'} /$x /$y/"  

  

unset x  

y="abc def"  

echo "/${x:='xyz'} /${y:-'xyz'} /$x /$y/"  

查看更多关于shell笔记之变量 - Linux操作系统:Ubuntu_Centos_Debi的详细内容...

  阅读:51次