Linux shell编程学习(一)
程序员文章站
2022-07-03 11:59:56
...
一、创建shell脚本文件
创建shell脚本文件时,必须在文件的第一行指定要使用的shell.
#!/bin/bash
通常,在shell脚本中,井号(#)用作注释行,shell脚本文件的第一行是个例外,#后面的!号会告诉shell会用哪一个shell,除了bash shell还可以用其他的shell.在shell脚本中,可以使用分号将两个命令放在一行上,但在shell脚本中,可以独立书写命令。shell根据会根据命令在文件中的顺序进行处理。
下面的代码是一个小例子:包含了创建shell文件,添加可执行权限,以及用echo作交互,运行程序。
$ vim test
#!/bin/bash
# This script display the date and who's logged on
echo The time and date are:
date
echo "Let's see who's logged into the system:"
who
~
$ ./test
bash: ./test: Permission denied
$ ls -l test
-rw-rw-r-- 1 douxiao douxiao 74 5月 10 10:36 test
$ chmod u+x test
$ ls -l test
-rwxrw-r-- 1 douxiao douxiao 74 5月 10 10:36 test
$ ./test
The time and date are:
2017年 05月 10日 星期三 13:52:12 CST
Let's see who's logged into the system:
douxiao tty7 2017-05-10 09:05 (:0)
二、脚本中使用变量
使用系统环境变量:
运行shell脚本中的单个命令会有很多限制,通常会需要在shell命令使用其他数据来处理信息。这个可以通过变量来实现。变量允许临时性的将信息存储在shell脚本中,以便和其他命令一起使用。
在脚本中,可以在环境变量名称前面加上美元符$来使用这些变量。
$ vim test1
#!/bin/bash
#display user information from the system.
echo "User info for userid: $USER"
echo UID: $UID
echo HOME: $HOME
$ chmod u+x test1
$ ./test1
User info for userid: douxiao
UID: 1000
HOME: /home/douxiao
echo命令中的环境变量会在脚本运行时替换成当前的值,如过真的需要显示$,需要在前面放置一个(\) 例如:\$15
使用用户变量:
除了环境变量,shell脚本还允许在脚本中定义和使用自己的环境变量。定义变量允许临时存储数据并在整个脚本中使用,用户变量可以是由字母、数字和下划线组成的文本字符串,长度不超过20个。用户变量区分大小写所以变量Var1和变量var1是不同的。
Note:使用等号将值赋给用户变量,在变量、等号和值之间不能出现空格。
shell脚本会自动决定变量值的数据类型。在shell脚本的整个生命周期里,shell脚本定义的变量会一直保持着他们的值,在shell脚本结束后被删除。下面是定义用户变量的例子。
var1=10
var2=-57
var3=testing
var4="still more testing"
与系统变量类似,用户变量可以通过美元符来引用
$vim test2
#!/bin/bash
days=10
guest="douxiao"
echo "$guest checked in $days days ago"
days=5
guest="xiaoming"
echo "$guest checked in $days days ago"
~
$ chmod u+x test2
$ ./test2
douxiao checked in 10 days ago
xiaoming checked in 5 days ago
命令替换:
有两种方法可以将命令输出赋给变量:
(1)使用反引号字符(`)
(2)$( )格式
将系统变量date的输出值赋给用户变量testing,调用时可以使用$testing
testing=$(date)
testing =`date`
echo "The date and time are: "$testing
上一篇: 前端后端数据传递的几种方式
下一篇: ModelAndView详解
推荐阅读
-
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
-
Linux shell脚本全面学习入门
-
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
-
shell编程基础之认识与学习BASH
-
linux shell脚本学习录制与回放终端会话
-
shell脚本学习指南[一](Arnold Robbins & Nelson H.F. Beebe著)
-
linux shell脚本学习xargs命令使用详解
-
Linux shell脚本编程if语句的使用方法(条件判断)
-
Linux Shell脚本编程的注意事项
-
Linux shell脚本基础学习详细介绍(完整版)第1/2页