
第17讲 使用变量
第17讲 使用变量

引言 如何创建和引用变量? ÷如何读入内容到变量? ~如何输出变量内容? 一一一一一第17讲使用变量第2页共11页
第17讲 使用变量 第2页 共11页 引 言 ❖如何创建和引用变量? ❖如何读入内容到变量? ❖如何输出变量内容?

【问题的提出】 Geecy.软件开发公司的开发人员Tom已经开始 使用自己开发的脚本update。但随之而来又 产生一个新问题:很多时候需要产生不同文 件名的数据文件,也就是说,文件名不一定 是固定的“data.txt”! 第17讲使用变量第3页共11页
第17讲 使用变量 第3页 共11页 【问题的提出】 ❖ Geecy软件开发公司的开发人员Tom已经开始 使用自己开发的脚本update。但随之而来又 产生一个新问题:很多时候需要产生不同文 件名的数据文件,也就是说,文件名不一定 是固定的“data.txt”!

【问题分析】 。这个问题本身不难。Tom立刻就想到了解决的方法: 例如,如果要求产生的数据文件名字为“new.txt”, 则可以: /update my data.txt new.txt 也就是说,每次执行脚本update之后,再运行一个 文件重命名的命令。 ·更好的解决方法是在脚本中使用变量。 第17讲使用变量第4页共11页
第17讲 使用变量 第4页 共11页 【问题分析】 ❖ 这个问题本身不难。Tom立刻就想到了解决的方法: 例如,如果要求产生的数据文件名字为“new.txt” , 则可以: ./update mv data.txt new.txt 也就是说,每次执行脚本update之后,再运行一个 文件重命名的命令。 ❖ 更好的解决方法是在脚本中使用变量

变量创建 使用Bash Shell,用户不需要显式地声明变 量。 ÷创建变量并赋值的语法是: = 其中: (1)表示将要创建的变量名。 (2)表示赋给变量的值。 (3)赋值运算符“=”的两边必须没有空白。 一第17讲使用变量第5页共11页
第17讲 使用变量 第5页 共11页 变量创建 ❖ 使用Bash Shell,用户不需要显式地声明变 量。 ❖ 创建变量并赋值的语法是: = 其中: (1)表示将要创建的变量名。 (2)表示赋给变量的值。 (3)赋值运算符“=”的两边必须没有空白

变量创建 声明变量的时候,用户不需要指定变量的类 型。 ÷Shell脚本中的变量都被当作是字符串。 ·如果所赋值的内容没有空格,可以不使用引 号。 第17讲使用变量第6页共11页
第17讲 使用变量 第6页 共11页 变量创建 ❖ 声明变量的时候,用户不需要指定变量的类 型。 ❖ Shell脚本中的变量都被当作是字符串。 ❖ 如果所赋值的内容没有空格,可以不使用引 号

变量引用 。当需要引用一个变量的内容,需要使用符号 “$”。为了不引起歧义,一般还需要配合花 括号“{}”。 第17讲使用变量第7页共11页
第17讲 使用变量 第7页 共11页 变量引用 ❖ 当需要引用一个变量的内容,需要使用符号 “$” 。为了不引起歧义,一般还需要配合花 括号“{ }”

输出变量内容 ÷如果需要输出内容到屏幕,用户可以使用echo命令。 使用echo命令的语法是: echo [-n]String 其中: (1)String表示将要输出的字符串。 (2)选项-n表示输出String后不输出回车换行符。 一一第17讲使用变量第8页共11贡
第17讲 使用变量 第8页 共11页 输出变量内容 ❖ 如果需要输出内容到屏幕,用户可以使用echo命令。 使用echo命令的语法是: echo [-n] String 其中: (1)String表示将要输出的字符串。 (2)选项-n表示输出String后不输出回车换行符

读入内容到变量 ·除了直接赋值给变量,用户也可以从键盘中读入一 个值赋给变量,然后在shell)脚本的后面根据需要使 用该变量。 ÷使用read命令从键盘读入内容到变量。 ÷当脚本解释执行到read命令的时候,将会暂停并等 待用户的键盘输入。当用户输入内容并按回车键后, 后面的语句将继续执行。 第17讲使用变量第9页共11页
第17讲 使用变量 第9页 共11页 读入内容到变量 ❖ 除了直接赋值给变量,用户也可以从键盘中读入一 个值赋给变量,然后在shell脚本的后面根据需要使 用该变量。 ❖ 使用read命令从键盘读入内容到变量。 ❖ 当脚本解释执行到read命令的时候,将会暂停并等 待用户的键盘输入。当用户输入内容并按回车键后, 后面的语句将继续执行

【解决方案】 #!/bin/bash Receive a file name echo -n "Input a file name:" read FileName Add a formatted string of date to file date|cut-f6,2,3-d””|tr”"”-”>$FileName Add a formatted string of time to data.txt datecut-f4-d””|cut-f1,2-d":”>$FileName Display the content of file cat SFileName 第17讲使用变量第10页共11页
第17讲 使用变量 第10页 共11页 【解决方案】 #!/bin/bash # Receive a file name echo -n "Input a file name: " read FileName # Add a formatted string of date to file date | cut -f6,2,3 -d " " | tr " " "-" > $FileName # Add a formatted string of time to data.txt date | cut -f4 -d " " | cut -f1,2 -d ":" >> $FileName # Display the content of file cat $FileName