为什么linux的if中括号前后要有空格?

为什么linux的if中括号前后要有空格?,第1张

很多刚学写shell的人经常有个疑问,为什么if后面要加上空格

比如下面第1行会报错,第2行正常

原因参考第3行命令,whereis [

可见左中括号是个单独的命令文件!

前后不加空格跟其它字符连接起来,那就不是 [ 这个命令了

这个真的不好说,你是刚接触Linux,刚开始输入的命令一般都是通过空格隔开的。但是也有特殊的,例如date命令,如果你想以全数字的形式输出,就要这样:

[root@localhost ~]# date +%Y%m%d

20101127

这个命令里面空格少一个多一个都是错的,这种形式在Linux的备份中常用。这样的情况你现在遇到的还较少。如果你想学的更深入一点,例如Shell编程,那么一定要注意空格的事,少一个多一个都会报错。不过,不用害怕,你接触的越多,明白的也越多,理解的也越深,现在你不用追究这些是什么原因,慢慢的你会明白的。

如果你只是想要去除掉开头的空格的话,你可以使用一个比较通用的awk命令,截取第二个字段就可以了。假如你的输出是:空格 帐号 你可以:loginTime=who| awk '{print $2}' | grep root | wc -l


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/8802022.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-21
下一篇 2023-04-21

发表评论

登录后才能评论

评论列表(0条)

保存