感悟网 导航

unix 下shell脚本中的$?代表什么意思啊? UNIX SHELL 语法中的$1是什么意思?

作者&投稿:福苇 (若有异议请与网页底部的电邮联系)
$0, $1, $2, $? 在unix shell里表示什么?~

$0代表当前使用的shell
echo $0就能显示当前你用的是bash还是csh等
$1,$2一般代表你使用的命令的参数
比如./test.sh 3 4
这个时候,3就是$1的值,4就是$2的值
$?代表上一条命令的返回值,真为1,假为其他值

命令行上的第一,第二,第三个。。。参数
eg:
nc10@your-5554c55be4 ~
$ cat testing_arg
#! /bin/bash
DAY=$2$3
MONTH=$1

echo "\$MONTH = \$1, $MONTH"
echo "\$DAY = \$2\$3 , \$2 is $2, \$3 is $3"

nc10@your-5554c55be4 ~
$ sh testing_arg 1 2 3
$MONTH = $1, 1
$DAY = $2$3 , $2 is 2, $3 is 3


就是这样

$?是指的上条命令执行的状态。。。。执行成功或者不成功。。。
示例一:在命令行里使用:
tux@tux-desktop:~$ cd /no_such_dir
bash: cd: /no_such_dir: No such file or directory
tux@tux-desktop:~$ echo $?
1
tux@tux-desktop:~$ cd /boot/
tux@tux-desktop:/boot$ echo $?
0

示例二:在SHELL脚本里使用
#!/bin/bash

cd ~/test/aaa 1>/dev/null 2&>1
if [ ! $? -eq 0 ]
then
echo "没有这个目录!!"
exit
fi
rm -rf *

当然还有:
$$ $* $@ $1 $# 等等

用来取变量的值的
最好是到网上学习shell
语法很简单的
就等于windows的批处理.bat文件
就是有些关键字要记

   

返回顶部
本页内容来自于网友发表,若有相关事宜请照下面的电邮联系
感悟网