shell中的set -- "$x"和set -- $x的使用

本文详细解析了Shell中set--命令的用法,包括如何处理以'-'或'+'开头的参数,以及如何利用IFS分隔符进行字符串的切割赋值。通过具体示例,展示了set--命令在不同场景下的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看下set --的英文使用说明
set –

Set 1 t o t h e v a l u e o f   x , e v e n i f i t b e g i n s w i t h   ′ − ′   o r   ′ + ′   : s e t − − " 1 to the value of x, even if it begins with '-' or '+' : set -- " 1tothevalueof x,evenifitbeginswith  or + :set"x"

Set the positional parameters to the expansion of x, even if x expands with a leading ‘-’ or ‘+’ :
set – $x

set – "$X"就是把X的值返回给$1, set – $X就是把X作为一个表达式的值一一返回

说明:set --是根据分隔符IFS,把值依次赋给$1,$2,$3,例子2就是展示这个。

例子1:

通过这个例子,就可以清楚的看到他们之间的区别。
例子2:

注意的是:
set --x 使用模板是:

oIFS=$IFS //保存系统默认分隔符

IFS=** //设置分割符以便set – 处理字符串使用

IFS=$oFIS //还原系统默认分隔符

我之前犯了个低级错误:
IFS=oIFS 这样会导致’o’,‘I’,‘F’,'S’都是分隔符


本文来自 fw63602 的优快云 博客 ,全文地址请点击:https://blog.youkuaiyun.com/fw63602/article/details/52799073?utm_source=copy

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值