shell学习笔记-命令行参数的处理

25 篇文章 0 订阅

1、shift  移开第一个参数

2、$#    提供传递到shell脚本或函数的参数总数。
while [$# != 0]                以shift逐渐减少$#,循环将会终止
do
case $1 in 

esac
shift
done

3、$*, $@
一次表示所有的命令行参数。这两个参数可用来把命令行参数传递给脚本或者函数所执行的程序。

“$*”将所有的命令行参数视为单个字符串,等同于“$1 $2 ...”.
$IFS的第一个字符用来做为分隔字符,以分隔不同的值来建立字符串
例如:
IFS="123"
printf "The arguments were %s/n" "$*"
$./aa   a b c
输出:The arguments were a1b1c

$@
将所有的命令行参数视为单独的个体也就是单独的字符串。等同于“$1” "$2" ...
printf "The arguments were %s/n" "$@"
$./aa   a b c
输出:
The arguments were a
The arguments were b
The arguments were c


4、POSIX内置shell变量
#    目前进程的参数个数。
@    传递给当前进程的命令行参数,至于双引号内,会展开为个别的参数。
*    当前进程命令行参数。置于双引号内,则展开为一单独参数。
-(连字号)    在引用时给予Shell的选项。
?    前一命令的退出状态。    echo $?    输出退出码。
$    shell进程的进程编号(process ID)。
0    shell程序的名称。
!    最近一个后台命令的进程编号,以此方式存储进程编号,可通过wait命令以供稍后使用。
ENV     一旦使用,则仅用于交互式shell中,$ENV的值是可展开的擦书。结果应为要读取和在启动时要执行的一个文件的完整路径名称。这是一个XSI必需的变量。
HOME    根(登录)目录
IFS    内部字段分隔器;例如作为单词分隔器的字符列表。一般设为空格、制表符(Tab),以及换行符(newline)。
LANG    当前locale的默认名称;其他的LC_*变量会覆盖其值。
PATH    命令的查找路径。
PPID    父进程的进程编号。


4、$? 最后一次退出的状态码
0    命令成功退出
>0    重定向或单词展开期间失败
1-125    命令不成功的退出
126        命令找到了,单文件无法执行
127        命令找不到
128        命令收到信号而死亡

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值