Shell这个语言好奇葩啊

 我来答
青柠姑娘17
2022-06-26 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6238
采纳率:100%
帮助的人:34.1万
展开全部

奇怪的引号
单引号内所有内容原样输出,双引号内可以有转义符和变量

提取字符串时最后一个数字是字符串长度,而不是最后一个字符位置
从字符串第 2 个字符(第一个字符位置为0)开始截取 4 个字符,输出 unoo

摸不着头脑的操作符

不寻常的数组
只有一维数组,且数组内容以空格分隔,而不是逗号
读取整个数组时需要加[@]
读取第n个位置到第m个位置的内容,不能用[n:m]或者[n,m]

多此一举的字符位置
左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示(直接用-1不好么)

expr计算时,唯独*前要加转义符
括号前也要加转义符

条件表达式也是离不开空格的戏精

数值比较大有玄机
[ expression1 OP expression2 ] ,OP 可以为 -gt、-lt、-ge、-le、-eq、-ne
((expression1 OP expression2)) ,OP 可以为 >、<、>=、<=、==、!=

字符串比较事多
[ string1 OP string2 ] ,OP为 ==、!=、\>、\<

布尔运算也要另辟蹊径

逻辑运算符也不是吃素的
双中括号太厉害了

都输出了hi,但是后者必须要[[]]
判断字符串是否为0还是别用-n了吧
-n 为true表示字符串长度不为0,但是这个引号你说多平白无故?

条件语句if的结尾还要fi
if [ condition ]; then command; elif command; fi
for [ condition ]; do command; command; done
while [condition]; do command; command; done
until [condition]; do command; done

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式