我有一个变量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 ]]
答案 0 :(得分:1)
虽然我同意你的问题的评论者,可能有更好的方法来做你想做的事情,用一个更简化的命令来解决这个问题,你可以将你的IF语句移动到awk:< / p>
echo $a | awk ' ($3 ~ /^[0-9]+$/ || $3=="root" || $4 ~ /^[0-9]+$/ || $4=="root") {print $9}'