gpt4 book ai didi

linux - 能否简化以下测试条件

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:53:37 25 4
gpt4 key购买 nike

我有一个变量 a,如果我回显它,它就会给我。

 lrwxrwxrwx 1 root root 23 May 16 2014 ggo -> /export/s1/home/ggo 

以下代码检查所有者或组是数字还是根。如果所有者或组是数字或根,那么它将打印目录的名称,在本例中为 ggo。

if [[ $(echo $a|awk "{print \$3}") =~ ^[0-9]+$ ]] || [[ $(echo $a|awk "{print \$3}") == root ]] || [[ $(echo $a|awk "{print \$4}") =~ ^[0-9]+$ ]] || [[ $(echo $a|awk "{print \$4}") == root ]] ; then echo $(echo $a | awk "{print \$9}"); fi;

但是可以简化吗?

例如不能压缩以下部分:

[[ $(echo $a|awk "{print \$3}") =~ ^[0-9]+$ ]] || [[ $(echo $a|awk "{print \$3}") == root ]]

最佳答案

虽然我同意评论者对你的问题的看法,即总体上可能有更好的方法来做你想做的事情,但要用一个更简化的命令解决这个问题,你可以将你的 IF 语句移到 awk 中:

echo $a | awk ' ($3 ~ /^[0-9]+$/ || $3=="root" || $4 ~ /^[0-9]+$/ || $4=="root") {print $9}'

关于linux - 能否简化以下测试条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28718168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com