在bash中绕过作为算术运算符的“-”处理

时间:2019-03-08 11:18:35

标签: linux bash operators

#!/bin/bash

dir=$1
cd $dir
list=$(find . -maxdepth 1 -mindepth 1 -type d -printf '%f,')
IFS=',' read -a array <<< "${list}"
for i in "${array[@]}"
do
longPermission=$(getfacl $i |stat -c %A $i)
longOwner=$(getfacl $i |grep owner)

ownerPermission=${longPermission:1:3}
owner=${longOwner:9}
if (($ownerPermission=="rwx"))
then
    permission='FULL_PERMISSION'
fi

if (($ownerPermission=="rw-"))
then
    permission='READ/WRITE_PERMISSION'
fi

#if (($ownerPermission=="r--"))
#then
#   permission='READ_ONLY_PERMISSION'
#fi

echo ’BUERO\ $owner -user -group -type windows permission $permission’

done

bash将rw-和rw--中的“-”视为算术运算符,但我要实现的是将其作为字符串处理,因为我想使用从getfacl $ i | grep owner获得的输出来工作,这使我得到了回报。我想在

中回显的字符串

回显‘BUERO \ $ owner -user -group -type Windows权限 $ permission

提前谢谢!

1 个答案:

答案 0 :(得分:3)

使用if [[ $ownerPermission == "rwx" ]]if [[ $ownerPermission == "rw-" ]]

(( expr ))用于自动表达,您在这里不需要。