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: 变量初识的更多相关文章

  1. linux shell脚本之-变量极速入门与进阶(1)

    1,如果创建shell脚本? 使用任意文本编辑软件,一般为vim,创建.sh结尾的文件,在文件的最开头用 #!/bin/bash 注明shell的类型 如: ghostwu@dev:~/linux/s ...

  2. Linux Shell编程、变量、控制语句

    为什么要学习Shell编程 1)Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理. 2)对于JavaEE和Python程序员来说,工作的需要,你的老大会要求你编写一些 ...

  3. Linux —— Shell编程之变量赋值和引用

    Linux的shell编程是一种非常成熟的编程语言,它支持各种类型的变量.有三种主要的变量类型:环境变量.内部变量和用户变量. 环境变量(environment variable)是系统环境的一部分, ...

  4. linux shell脚本之-变量极速入门与进阶(2)

    1,$$:显示当前的进程id号 ghostwu@dev:~/linux/shell/how_to_use_var$ cat show_pid.sh #!/bin/bash echo $$ ghostw ...

  5. Linux Shell 笔记

    1.查看进程的环境变量 普通:$cat /proc/1642/environ  换行:$cat /proc/1642/environ | tr '\0' '\n' tr的命令格式是tr SET1 SE ...

  6. Shell笔记-02

    Shell支持自定义变量. 定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编 ...

  7. 【Linux】Shell三类变量的作用域——linux shell “永久环境变量”、“临时环境变量”和"普通变量"之完全解读

      2015-05-08 00:15 3896人阅读 评论(10) 收藏 举报 本文章已收录于:   分类: 软件开发进阶(419) 作者同类文章X Unix/Linux杂项(118) 作者同类文章X ...

  8. Linux Shell基础篇——变量

    一.Shell中的变量 注:这里所说的Shell是Bash Shell,我姑且统称为Shell. Shell中的变量分为用户自定义变量.环境变量.位置参数变量.预定义变量.在Shell中,变量的默认类 ...

  9. Linux shell 脚本中变量的数学计算【转】

    本文转载自:http://blog.csdn.net/qinghezhen/article/details/9194287 首先从一个例子说起: x=1+1 echo $x 你是不是期待着输出2啊?让 ...

随机推荐

  1. iOS实现截屏 并合适保存

     本文转载至:http://blog.csdn.net/zeng11088/article/details/8664510 分类: UIImageView2013-03-12 16:42 122人阅读 ...

  2. 引入外部文件的时候为什么省略http:

    [摘要]相信很多时候大家在使用网上的实例代码的时候,需要引入外部文件,然而它们通常都是省略了http:,这是为什么呢? 先给大家看一个简单的小例子,引入外部jquery文件: <script s ...

  3. boost::archive::text_oarchive

    Serialization的中文解释是“串行化” .“序列化”或者“持久化” ,就是将内存中的对象保存到磁盘中,等到程序再次运行的时候再读取磁盘中的文件恢复原来的对象.下面来看一个简单的例子: #in ...

  4. 常用的一些javascript小技巧

    (转载)常用的一些javascript小技巧: http://bbs.blueidea.com/thread-2201069-1-1.html

  5. [SharePoint 2010] Visual Studio 2010內撰寫視覺化WebPart超簡單

    新一代的Visual Studio 2010對於SharePoint 2010的專案撰寫,有非常另人讚賞的改進. 以往寫一個WebPart要搞好多雜七雜八的步驟,也要硬寫HTML輸出,當然有人說可以寫 ...

  6. asp 中创建日志打印文件夹

    string FilePath = HttpRuntime.BinDirectory.ToString(); string FileName = FilePath + "日志" + ...

  7. 关于navicat 系列软件一点击菜单栏就闪退

    navicat 系列软件一点击菜单栏就闪退 多次卸载安装都出现了闪退的现象  后来发现,原来是启动了有道词典屏幕取词才会出现这种现象,关了有道就没事.

  8. UITextView 的 return响应事件

    在UITextView里没有UITextField里的- (BOOL)textFieldShouldReturn:(UITextField *)textField;直接的响应事件;那么在TextVie ...

  9. 荣誉墙项目day28 django常用函数

    1.在网页上渲染字符串from django.http import HttpResponsereturn HttpResponse(u"hello world") 2.渲染网页f ...

  10. MySQL的表分区详解 - 查看分区数据量,查看全库数据量----转http://blog.csdn.net/xj626852095/article/details/51245844

    查看分区数据量,查看全库数据量 USE information_schema; SELECT PARTITION_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.PAR ...