shell变量

!/bin/bash\
echo "Helllo World !"
echo "what is your name?"
read PERSON
echo "hello,$PERSON"

使用 read 命令从 stdin 获取输入并赋值给 PERSON 变量,最后在 stdout 上输出

url=http://www.baidu.com
echo $url
name='C语言智能'
echo $name 

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

echo "I am good at ${name}skill" 

变量名外面的花括号{ }是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,推荐给所有变量加上花括号{ },这是个良好的编程习惯。

name="C语言智能model"
echo ${name}
website1='百度:${url}'  

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

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

Shell 也支持将命令的执行结果赋值给变量,常见的有以下两种方式:第一种方式把命令用反引号包围起来,反引号和单引号非常相似,容易产生混淆,所以不推荐使用这种方式;第二种方式把命令用$()包围起来,区分更加明显,所以推荐使用这种方式。

log=$(cat log.txt)
echo $log

log=`cat log.txt`
echo $log

myUrl="www.qq.com"
readonly myUrl      #使用readonly命令可以将变量定义为制度变量,制度变量的值不能被改变
myUrl="www.alibaba.com"


myUrl2="www.163.com"
unset myUrl2
echo $myUrl2    #使用unset命令可以删除变量,变量被删除后不能再次使用;unset命令不能删除只读变量

变量类型

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. 定义变量 定义变量时,变量名不加美元符号($,PHP语言中变量需要),如: 注意,变量名和等号之间不能有空格...
    山的那边是什么_阅读 253评论 0 0
  • Shell 变量 定义变量是,变量名不加$,($,PHP语言中变量需要),如: 注意变量名和等号之间不能有空格,同...
    进击的攻城狮阅读 609评论 0 1
  • 定义变量 定义变量时,变量名不加美元符号($,PHP语言中变量需要),如: 注意,变量名和等号之间不能有空格,这可...
    枫海阅读 291评论 0 1
  • 变量的定义 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规...
    孤月环舟阅读 319评论 0 0
  • 又醒得特别早,抬手看表,还不到六点,虽然春季的清晨已经天色微亮,但寂静的窗外还提醒着我,这是该沉睡的黎明。 而往往...
    萨莉阅读 747评论 0 0

友情链接更多精彩内容