Linux系统test命令使用方法有哪些?

Linux系统test命令使用方法有哪些?,第1张

1.判断一个命令的结果使用test,其返回0,或一个整数。返回0表示true,返回整数表示错误码

2.获取上一个命令的返回结果使用$?

3.例如

我的服务器上面存在/home/www这样一个文件夹,所以ls

/home/www这个命令的返回结果为0

即echo

$?的返回值为0

我的服务器上面不存在/home/kkk这样一个文件夹,所以ls

/home/kkk这个命令的返回结果为这个命令执行后的错误码

即echo

$?的返回结果为2。这个2表示文件或文件夹不存在。

4.常用的文件测试符

-e表示此文件名是否存在

-f表示此文件名是否是文件

-d表示此文件名是否是文件夹

-r表示此文件名是否可读

-w表示此文件是否可写

-x表示此文件是否可执行

-S表示此文件是否问socket

4.1在我的服务器上/home/www为一个文件夹

所以test

-e

/home/www的结果为0,即true,此文件名存在

所以test

-f

/home/www

的结果不为0,即false,此文件名不为文件

所以test

-d

/home/www的结果为0,即为true,此文件名为文件夹

4.2在我的服务器上/home/kkk这个文件名不存在

所以test

-e

/home/kkk的结果不为0,即false,此文件名不存在

所以test

-d

/home/kkk的结果不为0,即false,此文件名不问文件夹。

 

上面就是Linux逻辑命令之test命令的使用方法介绍了,如果你要判断一个条件是否成立,就会用过该命令,你学会了吗?

linux显示无效的用户test说明Linux中用户不可用。根据查询相关资料信息显示,Linux中用户不可用,解决方法。创建用户test用户后,切换用户#sutest发现无法切换,提示为Thisaccountiscurrentlynotavailable看看test的帐号信息。

不是test失效, 而是 test 命令没有得到足够的参数.

原因是shell 在解释命令时, 会"先"对命令行进行扩展, 使用变量实际的值替换到命令行中, 然后再执行命令.

上面unset name后, $name的值为空, 执行完命令行扩展后, 实际执行的是

test -z && echo "empty" || echo "not empty"

此时, shell 实际传给test 命令的参数只有一个 "-z",  这种情况下, test 的退出码总是0

所以在执行的时候, 使用双引号将变量名引起来是个好习惯, 这样命令行扩展后实际传给test的参数为2个(尽管第2个只是一个空字符串)

关于shell 的命令行扩展, 除了变量, 还有一些其它的工作,

见下例: a.sh

#!/bin/bash

echo $#

echo $@

执行 ./a.sh a{1,2,3} 输出为

./a.sh a{1,2,3}

3

a1 a2 a3

看起来是传给命令行一个参数 a{1,2,3}, 实际上执行完shell 扩展后, 传给a.sh 的参数是 a1 a2 a3 共3个参数.

关于shell 扩展的更多细节, 详见bash 的man page的 EXPANSION 这一节.


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

原文地址: http://outofmemory.cn/tougao/6059901.html

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

发表评论

登录后才能评论

评论列表(0条)

保存