Shell变量
3、预定义变量
Shell编程内事先定义了一些变量,用户只能使用这些变量而不能重新定义它们。所有的预定义变量都由$符号和另一个符号构成,常用的预定义变量如下:
$#命令行参数的个数
$@所有命令行参数(不计$0,同$*)
$?前一个命令的退出状态
$* 所有命令行参数(不计$0,同$@)
$$正在执行的进程ID号
示例:演示各个位置变量的值
#!/bin/bash
echo "this is #" $#
echo "this is @" $@
echo "this is ?" $?
echo "this is *" $*
echo "this is $" $$
执行:./myshell.sh 123 456 789
输出:
this is 0 ./myshell.sh
this is 1 123
this is # 3
this is @ 123 456 789
this is ? 0
this is * 123 456 789
this is $ 2710
4、环境变量
环境变量适用于所有用户进程,环境变量均为大写。常用的环境变量如下:
HOME 用户工作目录所在地址,在文件/etc/passwd文件内存储
PATH Shell搜索路径
HISTSIZE 保存历史记录的条目数
LOGNAME 当前登录用户名
HOSTNAME 主机名称
SHELL 当前使用的Shell类型
UID 登录用户的ID
USER 显示当前用户名
SECONDS 记录脚本从开始运行到结束耗费的时间
示例:演示各个环境变量的值
#!/bin/bash
echo "HOME IS " $HOME
echo "PATH IS " $PATH
我们可以使用env命令查看更多的环境变量信息。
我们可以使用export命令来自定义环境变量,使用unset命令清除环境变量。例如:
export HELLO="Hello"
echo $HELLO