Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1450542
  • 博文数量: 263
  • 博客积分: 10851
  • 博客等级: 上将
  • 技术积分: 2627
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-26 22:40
文章分类

全部博文(263)

文章存档

2013年(4)

2012年(25)

2011年(33)

2010年(50)

2009年(138)

2008年(13)

分类: LINUX

2009-01-11 01:22:15

1. $! 表示运行在后台的最后一个进程的PID
2. $$ 表示当前进程的pid, $PPID表示当前进程的父进程ID
3. $- 传递给脚本的标记(即用set命令设置的选项), 如
# echo $-
himBH
# set -f
# echo $-
fhimBH
4. $_ 保存之前一个命令的最后一个参数值
 
3. VISUAL 表示默认的可视编辑器
    许多程序使用环境变量EDITOR或VISUAL来决定使用哪个编辑器。默认为vim,如果你用不惯vim, 可以在~/.bashrc里指定其他的编辑器, 如:
    # export VISUAL="/bin/ls /usr/local"
    #  crontab -e
/tmp/crontab.XXXXGjHxQD
/usr/local:
app             bin  games  Ice-3.3.0  java  jdk1.5.0_06                  lib      man    resin         resin-3.0.25.tar.gz  share
BerkeleyDB.4.6  etc  Ice    include    jdk   jdk-1_5_0_06-linux-i586.bin  libexec  mysql  resin-3.0.25  sbin                 src
crontab: no changes made to crontab
 
4. SHLVL  是标识shell嵌套级别(SHell LeVeL)的环境变量。在一个shell运行过程中,新开一个shell,该变量会+1,故非login shell中,该值不为1。  
Definition: $SHLVL: Incremented by one each time an instance of bash is started.
如:
if [ "x$SHLVL" != "x1" ]; then # We're not a login shell
        for i in /etc/profile.d/*.sh; do
            if [ -r "$i" ]; then
                . $i
            fi
        done
fi
 
5. !$   !:1  这几个不是内部变量了,  !$表示上次命令的最后一个token(记号),  主要是用在前次命令的最后是一个token是长文件名, 这次就可以直接使用!$来引用上次使用的文件名了。 比如:
# grep hello  mysql.txt
# vi !$   就表示直接用vi编辑mysql.txt
# ls -l
# echo !$   # 发现输出的是 -l
!:1  表示第二个token !:2 表示第三个token

6. $@ 与 $*
$* : 所有的位置参数都被看作为一个单词.
$@ : 与$*相同, 但是每个参数都是一个独立的引用字符串, 这就意味着, 参数是被完整传递的, 并没有被解释或扩展. 这也意味着, 参数列表中每个参数都被看作为单独的单词.
shift命令执行以后, $@将会保存命令行中剩余的参数, 但是没有之前的$1, 因为被丢弃了。
$@也可以作为工具使用, 用来过滤传递给脚本的输入. cat "$@"结构既可以接受从stdin传递给脚本的输入, 也可以接受从参数中指定的文件中传递给脚本的输入.

$@与$*的区别一例:
#!/bin/bash

function cnt()
{
        local CNT=$#
        echo $CNT
        echo "$1"
        return 0
}

cnt "$@"
cnt "$*"
cnt $@
cnt $*

exit 0

# ./2.sh 
./2.sh   a b c d "e    f         g"
5
a
1
a b c d e    f         g
7
a
7
a

# $@$*中的参数只有在被双引号引用起来的时候才会不同, $@与$*的行为有时候令人迷惑,这些都依赖于IFS的设置
阅读(1790) | 评论(0) | 转发(0) |
0

上一篇:cp / mv 的 -T/-R 选项

下一篇:bash的for循环

给主人留下些什么吧!~~