亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Shell腳本編程---變量知識點1

        不同于其他编程语言,Shell语法中,如果不特殊声明的话,所有的变量都是全局变量,即使你在函数中声明的变量,一旦函数被引用,这个变量就会生效,直到脚本结束的全生命周期内,这个变量都可以被随时引用。

        诸如下面的例子:

        https://img1.sycdn.imooc.com//5ba389310001d76306390430.jpg

        执行这个脚本:sh variable.sh,输出结果如下:

        https://img1.sycdn.imooc.com//5ba389540001bf0003860103.jpg

        第一次输出结果为空

            分析:因为虽然我们在函数example_1中定义了变量var的值为75,但我们并未引用函数,所以变量值并不生效,所以输出为空

        第二次输出结果为75

            分析:第二次输出结果之前,我们已经调用了example_1函数,虽然只是在函数体内定义的变量,但由于未对变量做特殊声明,所以变量var的值为75生效

        第三次输出结果为75

            分析:虽然我们实在函数example_2中直接引用了变量var的值,但是在shell脚本中不做特殊声明,变量都是全局的,所以var的值一直到脚本结束,都有效,所以输出仍为75


        如果想在脚本中对变量定义为局部变量,则必须使用local关键字,看下面例子

        https://img1.sycdn.imooc.com//5ba38b6900012eda05590298.jpg

        修改上面的脚本,在函数example_1中定义var变量时使用了local关键字

        执行脚本:sh variable.sh,输出结果如下:

        https://img1.sycdn.imooc.com//5ba38b7e00011afb04410092.jpg

        结果分析:

                第一次输出75是因为调用了函数,函数体内变量var生效,所以输出值75

                第二次输出空,是因为函数调用结束,该变量声明周期就结束了,变量var被销毁了,所以输出为空


        总结:简单的shell变量知识,却极容易让有其他高级语言编程基础的初学者搞混,因此希望可以帮助大家,滴水穿石,点滴积累,汇聚成海

點擊查看更多內容
1人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
全棧工程師
手記
粉絲
1.1萬
獲贊與收藏
117

關注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消