LINUX SHELL 笔记 02: 变量初识
https://www.shellscript.sh/variables1.html
变量是一个可操作(读、写)的内存块的名字。
尝试-1
创建一个变量:
root@iZwz:~/labs# sh mytest.sh
Hello.
root@iZwz:~/labs# cat mytest.sh
#!/bin/bash
MY_MESSAGE="Hello."
echo $MY_MESSAGE
赋值号两边不应该有空格!~
尝试-2
从标准输入读取一行:
root@iZwz:~/labs# sh mytest.sh
WHAT IS YOUR NAME?
xkfx
Hello xkfx - HOPE YOU WELL.
root@iZwz:~/labs# cat mytest.sh
#!/bin/bash
echo WHAT IS YOUR NAME?
read MY_NAME
echo "Hello $MY_NAME - HOPE YOU ARE WELL."
2、关于变量
变量里面到底是什么?
一切都是“字符串”。
如果你认为 sum 里面是数字就大错特错了。
不论是整数、实数或是一切你喜欢的类型,
都将作为字符串存储。
只是 let 让解释器把变量当成 ...
(向后引用 :P)
变量的作用域
export 和 . (dot) 是两个很常用的命令,弄清楚这两个命令到底让计算机做了什么,就能很容易理解“变量的作用域”了 ~
Ⅰ、关于 export:
export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。 一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执 行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。 来自: http://man.linuxde.net/export
mytest.sh 的代码在下面下面!
root@iZwz:~/labs# export MSG="AAAAAAAA"
root@iZwz:~/labs# sh mytest.sh
MSG=AAAAAAAA
MSG=VALUE-2
Ⅱ、一旦一个脚本执行完毕,它所创建的“环境”、“变量”都将被破坏,我们可以通过 . 来引用脚本,而不是创建一个新的 shell 来运行它:
root@iZwz:~/labs# cat mytest.sh
#!/bin/bash
echo "MSG=$MSG"
MSG="VALUE-2"
echo "MSG=$MSG" root@iZwz:~/labs# MSG="VALUE-1"
root@iZwz:~/labs# sh mytest.sh # RUN THROUGH sh COMMAND, WHICH CREATE A NEW SHELL TO RUN IT.
MSG=
MSG=VALUE-2
root@iZwz:~/labs# . mytest.sh # RUN THROUGH . COMMAND, WHICH USES CURRENT SHELL TO RUN IT.
MSG=VALUE-1
MSG=VALUE-2
3、何时使用 ${} ?
#!/bin/bash
echo "What is your name?"
read USER_NAME
echo "Hello $USER_NAME"
echo "I will create you a file called ${USER_NAME}_file"
touch "${USER_NAME}_file"
root@iZwz:~/labs# sh mytest.sh
What is your name?
xkfx
Hello xkfx
I will create you a file called xkfx_file
root@iZwz:~/labs# ls
mytest.sh xkfx_file
LINUX SHELL 笔记 02: 变量初识的更多相关文章
- linux shell脚本之-变量极速入门与进阶(1)
1,如果创建shell脚本? 使用任意文本编辑软件,一般为vim,创建.sh结尾的文件,在文件的最开头用 #!/bin/bash 注明shell的类型 如: ghostwu@dev:~/linux/s ...
- Linux Shell编程、变量、控制语句
为什么要学习Shell编程 1)Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理. 2)对于JavaEE和Python程序员来说,工作的需要,你的老大会要求你编写一些 ...
- Linux —— Shell编程之变量赋值和引用
Linux的shell编程是一种非常成熟的编程语言,它支持各种类型的变量.有三种主要的变量类型:环境变量.内部变量和用户变量. 环境变量(environment variable)是系统环境的一部分, ...
- linux shell脚本之-变量极速入门与进阶(2)
1,$$:显示当前的进程id号 ghostwu@dev:~/linux/shell/how_to_use_var$ cat show_pid.sh #!/bin/bash echo $$ ghostw ...
- Linux Shell 笔记
1.查看进程的环境变量 普通:$cat /proc/1642/environ 换行:$cat /proc/1642/environ | tr '\0' '\n' tr的命令格式是tr SET1 SE ...
- Shell笔记-02
Shell支持自定义变量. 定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编 ...
- 【Linux】Shell三类变量的作用域——linux shell “永久环境变量”、“临时环境变量”和"普通变量"之完全解读
2015-05-08 00:15 3896人阅读 评论(10) 收藏 举报 本文章已收录于: 分类: 软件开发进阶(419) 作者同类文章X Unix/Linux杂项(118) 作者同类文章X ...
- Linux Shell基础篇——变量
一.Shell中的变量 注:这里所说的Shell是Bash Shell,我姑且统称为Shell. Shell中的变量分为用户自定义变量.环境变量.位置参数变量.预定义变量.在Shell中,变量的默认类 ...
- Linux shell 脚本中变量的数学计算【转】
本文转载自:http://blog.csdn.net/qinghezhen/article/details/9194287 首先从一个例子说起: x=1+1 echo $x 你是不是期待着输出2啊?让 ...
随机推荐
- iOS实现截屏 并合适保存
本文转载至:http://blog.csdn.net/zeng11088/article/details/8664510 分类: UIImageView2013-03-12 16:42 122人阅读 ...
- 引入外部文件的时候为什么省略http:
[摘要]相信很多时候大家在使用网上的实例代码的时候,需要引入外部文件,然而它们通常都是省略了http:,这是为什么呢? 先给大家看一个简单的小例子,引入外部jquery文件: <script s ...
- boost::archive::text_oarchive
Serialization的中文解释是“串行化” .“序列化”或者“持久化” ,就是将内存中的对象保存到磁盘中,等到程序再次运行的时候再读取磁盘中的文件恢复原来的对象.下面来看一个简单的例子: #in ...
- 常用的一些javascript小技巧
(转载)常用的一些javascript小技巧: http://bbs.blueidea.com/thread-2201069-1-1.html
- [SharePoint 2010] Visual Studio 2010內撰寫視覺化WebPart超簡單
新一代的Visual Studio 2010對於SharePoint 2010的專案撰寫,有非常另人讚賞的改進. 以往寫一個WebPart要搞好多雜七雜八的步驟,也要硬寫HTML輸出,當然有人說可以寫 ...
- asp 中创建日志打印文件夹
string FilePath = HttpRuntime.BinDirectory.ToString(); string FileName = FilePath + "日志" + ...
- 关于navicat 系列软件一点击菜单栏就闪退
navicat 系列软件一点击菜单栏就闪退 多次卸载安装都出现了闪退的现象 后来发现,原来是启动了有道词典屏幕取词才会出现这种现象,关了有道就没事.
- UITextView 的 return响应事件
在UITextView里没有UITextField里的- (BOOL)textFieldShouldReturn:(UITextField *)textField;直接的响应事件;那么在TextVie ...
- 荣誉墙项目day28 django常用函数
1.在网页上渲染字符串from django.http import HttpResponsereturn HttpResponse(u"hello world") 2.渲染网页f ...
- MySQL的表分区详解 - 查看分区数据量,查看全库数据量----转http://blog.csdn.net/xj626852095/article/details/51245844
查看分区数据量,查看全库数据量 USE information_schema; SELECT PARTITION_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.PAR ...