使用外壳变量
来源:互联网 发布:大河剧 知乎 编辑:程序博客网 时间:2024/06/10 16:58
就像其它的任何高级语言一样,在外壳脚本中使用变量也是十分重要的。
1.给变量赋值
在pdksh和bash中,给变量赋值的方法是一样的,即在变量名后跟着等号和变量值。例如,想要把5赋给变量count,则使用如下的命令:
count=5 (注意,在等号的两边不能有空格)
在tcsh中,可以使用如下的命令:
set count=5
因为外壳语言是一种不需要类型检查的解释语言,所以,在使用变量之前无须事先定义,这和C或Pascal语言不一样。这也说明你可以使用一个变量来存储字符串或整数。给字符串赋值的方法和给整数赋值的方法一样,例如
name=Garry (在pdksh和bash中)
set name=Garry (在tcsh中)
读取变量的值
可以使用$读取变量的值。例如,用如下的命令将count变量的内容输出到屏幕上:
echo $count
位置变量和其他系统变量
位置变量用来存储外壳程序后面所跟的参数。第一个参数存储在变量1中,第二个参数存储在变量2中,依次类推。这些变量为系统保留变量,所以你不能为这些变量赋值。同样,你可以使用$来读取这些变量的值。例如,你可以编写一个外壳程序reverse,执行过程中它有两个变量。输出时,将两个变量的位置颠倒。
#program reverse,prints the command line parameters out in reverse order
echo "$2" "$1"
在外壳下执行此外壳程序:
reverse hello there
其输出入下:
there hello
除了位置变量外,还有其他的一些系统变量,下面分别加以说明:
有些变量在启动外壳时就已经存在于系统中,你可以使用这些系统变量,并且可以赋予新值:
$HOME 用户自己的目录。
$PATH 执行命令时所搜寻的目标。
$TZ 时区。
$MAILCHECK 每隔多少秒检查是否有新的邮件。
$PS1 在外壳命令行的提示符。
$PS2 在命令尚未打完时,外壳要求再输入时的提示符。
$MANPATHman 指令的搜寻路径。
有些变量在执行外壳程序时系统就设置好了,并且你不能加以修改:
$# 存储外壳程序中命令行参数的个数。
$? 存储上一个执行命令的返回值。
$* 存储外壳程序的所有参数。
$0 存储外壳程序的程序名。
"$@" 存储所有命令行输入的参数,分别表示为(“$1” "$2" .....).
$! 存储上一个后台执行命令的PID.
1.给变量赋值
在pdksh和bash中,给变量赋值的方法是一样的,即在变量名后跟着等号和变量值。例如,想要把5赋给变量count,则使用如下的命令:
count=5 (注意,在等号的两边不能有空格)
在tcsh中,可以使用如下的命令:
set count=5
因为外壳语言是一种不需要类型检查的解释语言,所以,在使用变量之前无须事先定义,这和C或Pascal语言不一样。这也说明你可以使用一个变量来存储字符串或整数。给字符串赋值的方法和给整数赋值的方法一样,例如
name=Garry (在pdksh和bash中)
set name=Garry (在tcsh中)
读取变量的值
可以使用$读取变量的值。例如,用如下的命令将count变量的内容输出到屏幕上:
echo $count
位置变量和其他系统变量
位置变量用来存储外壳程序后面所跟的参数。第一个参数存储在变量1中,第二个参数存储在变量2中,依次类推。这些变量为系统保留变量,所以你不能为这些变量赋值。同样,你可以使用$来读取这些变量的值。例如,你可以编写一个外壳程序reverse,执行过程中它有两个变量。输出时,将两个变量的位置颠倒。
#program reverse,prints the command line parameters out in reverse order
echo "$2" "$1"
在外壳下执行此外壳程序:
reverse hello there
其输出入下:
there hello
除了位置变量外,还有其他的一些系统变量,下面分别加以说明:
有些变量在启动外壳时就已经存在于系统中,你可以使用这些系统变量,并且可以赋予新值:
$HOME 用户自己的目录。
$PATH 执行命令时所搜寻的目标。
$TZ 时区。
$MAILCHECK 每隔多少秒检查是否有新的邮件。
$PS1 在外壳命令行的提示符。
$PS2 在命令尚未打完时,外壳要求再输入时的提示符。
$MANPATHman 指令的搜寻路径。
有些变量在执行外壳程序时系统就设置好了,并且你不能加以修改:
$# 存储外壳程序中命令行参数的个数。
$? 存储上一个执行命令的返回值。
$* 存储外壳程序的所有参数。
$0 存储外壳程序的程序名。
"$@" 存储所有命令行输入的参数,分别表示为(“$1” "$2" .....).
$! 存储上一个后台执行命令的PID.
- 使用外壳变量
- 关于使用JAVA写外壳
- 使用 C# 等待外壳应用程序完成
- 使用Bash编写Linux Shell脚本-2.使用外壳语言
- 不同的用户使用不同的外壳程序
- XP Embedded:不同的用户使用不同的外壳程序
- 外壳编程
- 变量和变量使用
- 使用 AYGShell 实现 Windows CE .NET 和 Pocket PC 2002 外壳兼容性
- 使用Bash编写Liunx 脚本程序——3、文件、用户和外壳的自定义设置
- 变量使用
- 变量#%使用
- 变量使用
- PesPin 0.7外壳分析
- 多层外壳脱壳分析
- AcProtect 1.41 外壳分析
- 外壳拖放控制扩展
- SDProtector 1.12 外壳分析
- statspack报告与sam配置杂记
- 对天乙社区bbscs8实现的详细分析三
- 如何清除从网页中粘贴到word中的格式
- Debian下一个网卡绑定多个ip的方法 & 添加路由
- 用Visual C#来删除注册表中的注册信息
- 使用外壳变量
- 对天乙社区bbscs8实现的详细分析四
- 微软.NET Framework的开源之路
- 白色的风信子——刘继荣
- 封装好的DLL远程注入函数
- 在ASP.NET中实现POST发送数据http://dotnet.aspx.cc/article/atv1glxt-65ff-4m82-ct5u-b1j65d3zn2ok/read.aspx
- 对JavaScript的对象模型的思考
- datagrid连接数据库并显示及更新
- 发现一个不错的下载站