读写Shell变量命令替代操作符及其描述
$variable 得到一个变量的值,如果没有被初始化则为Null 没有被初始化返回NULL
${variable} 得到一个变量的值,如果没有被初始化则为Null,通常在其他的东西要添加到变量值的时候使用 同上
${variable:-string} 得到一个变量的值,如果这个变量没有被定义则返回一个确定的值 variable存在而且不是空值的时候返回变量的值,否在那返回null
${variable:=string} 得到一个变量没有被定义则把一个已知的值赋给它并返回这个值 variable存在不是空值的时候返回值,否则string赋给variable,返回string
${variable:?string} 如果变量没有被定义则显示一条消息 variable存在而且不是空值的时候,返回变量的值,否则显示字符串variable,并在其后显示message
${variable:+string} 测试一个变量存在与否 variable存在而且不是空值的时候返回string,否则返回null
- yaoyuan-desktop$echo $name
-
- yaoyuan-desktop$name=yaoyuan
- yaoyuan-desktop$echo $name
- yaoyuan
- yaoyuan-desktop$echo $place
-
- yaoyuan-desktop$echo ${name:-John} ${place:-Portland}
- yaoyuan Portland
- yaoyuan-desktop$echo ${place?"Not defined"}
- bash: place: Not defined
- yaoyuan-desktop$echo ${name:+"Not defined"}
- Not defined
- yaoyuan-desktop$echo ${place:+"Not defined"}
-
- yaoyuan-desktop$echo ${place:="San Francisro"}
- San Francisro
- yaoyuan-desktop$echo ${name:-John} ${place:-Portland}
- yaoyuan San Francisro
yaoyuan-desktop$echo $nameyaoyuan-desktop$name=yaoyuanyaoyuan-desktop$echo $nameyaoyuanyaoyuan-desktop$echo $placeyaoyuan-desktop$echo ${name:-John} ${place:-Portland}yaoyuan Portlandyaoyuan-desktop$echo ${place?"Not defined"}bash: place: Not definedyaoyuan-desktop$echo ${name:+"Not defined"}Not definedyaoyuan-desktop$echo ${place:+"Not defined"}yaoyuan-desktop$echo ${place:="San Francisro"}San Francisroyaoyuan-desktop$echo ${name:-John} ${place:-Portland}yaoyuan San Francisro
'',"",*,\的使用 - yaoyuan-desktop$name=yaoyuan
- yaoyuan-desktop$echo $name
- yaoyuan
- yaoyuan-desktop$name=yao yuan
- bash: yuan:找不到命令
- yaoyuan-desktop$echo $name
- yaoyuan
- yaoyuan-desktop$name=yaoyuan*
- yaoyuan-desktop$echo $name
- yaoyuan
- yaoyuan-desktop$name=yaoyuan
- yaoyuan-desktop$echo $name
- yaoyuan
- yaoyuan-desktop$echo "$name"
- yaoyuan*
- yaoyuan-desktop$echo "Is Not Hello World! "
- Is Not Hello World!
- yaoyuan-desktop$echo '$name'
- $name
- yaoyuan-desktop$echo '$name'
- $name
yaoyuan-desktop$name=yaoyuanyaoyuan-desktop$echo $nameyaoyuanyaoyuan-desktop$name=yao yuanbash: yuan:找不到命令yaoyuan-desktop$echo $nameyaoyuanyaoyuan-desktop$name=yaoyuan*yaoyuan-desktop$echo $nameyaoyuanyaoyuan-desktop$name=yaoyuanyaoyuan-desktop$echo $nameyaoyuanyaoyuan-desktop$echo "$name"yaoyuan*yaoyuan-desktop$echo "Is Not Hello World! "Is Not Hello World!yaoyuan-desktop$echo '$name'$nameyaoyuan-desktop$echo '$name'$name
Shell命令替换$(command) - yaoyuan-desktop$command=pwd
- yaoyuan-desktop$echo "The value of command is: $command."
- The value of command is: pwd.
- yaoyuan-desktop$command=$(pwd)
- yaoyuan-desktop$echo "The value of command is: $command."
- The value of command is: /home/yaoyuan.
yaoyuan-desktop$command=pwdyaoyuan-desktop$echo "The value of command is: $command."The value of command is: pwd.yaoyuan-desktop$command=$(pwd)yaoyuan-desktop$echo "The value of command is: $command."The value of command is: /home/yaoyuan.
命令替换适用于任何命令 - yaoyuan-desktop$echo "The date and time is $(date)."
- The date and time is 2008年 10月 12日 星期日 01:41:28 CST.
yaoyuan-desktop$echo "The date and time is $(date)."The date and time is 2008年 10月 12日 星期日 01:41:28 CST.
创建只读的用户自定义的变量declare -r [name-list]
typeset -r [name-list]
readonly [name-list]
用于阻止对name-list中列出的变量赋新值
- yaoyuan@yaoyuan-desktop:~/ScriptFile$ declare -r name=Yao place=Yuan
- yaoyuan@yaoyuan-desktop:~/ScriptFile$ echo $name $place
- Yao Yuan
-
- yaoyuan@yaoyuan-desktop:~/ScriptFile$ name=Yuan
- bash: name: 只读变量
- yaoyuan@yaoyuan-desktop:~/ScriptFile$ place="YaoYuan"
- bash: place: 只读变量
yaoyuan@yaoyuan-desktop:~/ScriptFile$ declare -r name=Yao place=Yuanyaoyuan@yaoyuan-desktop:~/ScriptFile$ echo $name $placeYao Yuanyaoyuan@yaoyuan-desktop:~/ScriptFile$ name=Yuanbash: name: 只读变量yaoyuan@yaoyuan-desktop:~/ScriptFile$ place="YaoYuan"bash: place: 只读变量
只读变量的值不能重设 - yaoyuan@yaoyuan-desktop:~/ScriptFile$ unset name
- bash: unset: name:无法重置:只读的 variable
- yaoyuan@yaoyuan-desktop:~/ScriptFile$ unset place
- bash: unset: place:无法重置:只读的 variable
yaoyuan@yaoyuan-desktop:~/ScriptFile$ unset namebash: unset: name:无法重置:只读的 variableyaoyuan@yaoyuan-desktop:~/ScriptFile$ unset placebash: unset: place:无法重置:只读的 variable
从标准输入设备读入read [options][variable-list]
用于从标准输入设备读入一行,把读入的词赋给在variable-list中的变量
- yaoyuan@yaoyuan-desktop:~/ScriptFile$ cat read_demo
- #! /bin/bash
- echo -n "Enter input: "
- read line
- echo "You entered: $line"
- echo -n "Enter another line: "
- read word1 word2 word3
- echo "The first word is: $word1"
- echo "The second word is : $word2"
- echo "The rest of the line is: $word3"
- exit 0
- yaoyuan@yaoyuan-desktop:~/ScriptFile$ ./read_demo
- Enter input: yaoyuan
- You entered: yaoyuan
- Enter another line: hello shell, I love you
- The first word is: hello
- The second word is : shell,
- The rest of the line is: I love you
yaoyuan@yaoyuan-desktop:~/ScriptFile$ cat read_demo#! /bin/bashecho -n "Enter input: "read lineecho "You entered: $line"echo -n "Enter another line: "read word1 word2 word3echo "The first word is: $word1"echo "The second word is : $word2"echo "The rest of the line is: $word3"exit 0yaoyuan@yaoyuan-desktop:~/ScriptFile$ ./read_demoEnter input: yaoyuanYou entered: yaoyuanEnter another line: hello shell, I love youThe first word is: helloThe second word is : shell,The rest of the line is: I love you
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。