标签:
与编译型语言不同,shell脚本是一种解释型语言。
执行这类程序时,解释器(interpreter)需要读取我们编写的源代码(source code),并将其转换成目标代码(object code),再由计算机运行。
Linux默认的脚本解析器是bash。
参考资料 http://c.biancheng.net/cpp/view/6994.html
第一个Shell脚本
下面演示我们的第一个shell脚本,使用文本编辑器(如vi),键入如下代码并保存为hello.sh
#!/bin/bash echo "Hello World !"
然后给该脚本赋予执行权限
chmod +x ./hello.sh
然后执行该脚本,终端就会显示Hello World!
其中脚本第一行#!/bin/bash 指明了该脚本的解释器
read命令
下面的脚本使用read命令从 stdin 获取输入并赋值给 PERSON 变量,最后在 stdout 上输出
#!/bin/bash echo "What is your name?" read PERSON echo "Hello, $PERSON"
下面是运行情况
Shell变量
定义变量
variableName="value"
使用一个定义过的变量,只要在变量名前面加美元符号($)即可,如:
name="runnyu" echo ${name}
花括号可加可不加,加花括号是为了帮助解释器识别变量的边界。使用readonly+变量名可以将变量定义为只读变量,unset+变量名可以删除变量
readonly name unset name
特殊变量
编写special.sh测试
#!/bin/sh echo "pid=$$" echo "$0" echo "$1" echo "$2" echo "$#" echo "$*"
运行结果
$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。
但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。
标签:
原文地址:http://www.cnblogs.com/runnyu/p/4675537.html