Skip to content

Commit 2217cc0

Browse files
author
Your Name
committed
added permission number to sigle letter chmod
1 parent 593949f commit 2217cc0

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

share/adapters/chmod.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,36 +92,50 @@ chmod_calc(){
9292
elif [[ $1 =~ ^[r,s,t,w,x]+$ ]]
9393
then
9494
p_s='---------'
95+
p_n0=0
96+
p_n1=0
97+
p_n2=0
98+
p_n3=0
9599
R=(' ' ' ' ' ')
96100
W=(' ' ' ' ' ')
97101
X=(' ' ' ' ' ')
98102
if [[ $1 =~ 'r' ]]
99103
then
100104
p_s=$(echo $p_s | sed 's/./r/1; s/./r/4; s/./r/7;')
105+
let p_n1+=4
106+
let p_n2+=4
107+
let p_n3+=4
101108
R=('X' 'X' 'X')
102109
fi
103110
if [[ $1 =~ 'w' ]]
104111
then
105112
p_s=$(echo $p_s | sed 's/./w/2')
113+
let p_n1+=2
106114
W=('X' ' ' ' ')
107115
fi
108116
if [[ $1 =~ 'x' ]]
109117
then
110118
p_s=$(echo $p_s | sed 's/./x/3; s/./x/6; s/./x/9;')
119+
let p_n1+=1
120+
let p_n2+=1
121+
let p_n3+=1
111122
X=('X' 'X' 'X')
112123
fi
113124
if [[ $1 =~ 's' ]]
114125
then
115126
[[ ${p_s:2:1} == 'x' ]] && p_s=$(echo $p_s | sed 's/./s/3') || p_s=$(echo $p_s | sed 's/./S/3')
116127
[[ ${p_s:5:1} == 'x' ]] && p_s=$(echo $p_s | sed 's/./s/6') || p_s=$(echo $p_s | sed 's/./S/6')
128+
let p_n0+=6
117129
setuid='X'
118130
setgid='X'
119131
fi
120132
if [[ $1 =~ 't' ]]
121133
then
134+
let p_n0+=1
122135
[[ ${p_s:8:1} == 'x' ]] && p_s=$(echo $p_s | sed 's/./t/9') || p_s=$(echo $p_s | sed 's/./T/9')
123136
sticky='X'
124137
fi
138+
p_n="${p_n0}${p_n1}${p_n2}${p_n3}"
125139
fi
126140
else
127141
return 1

0 commit comments

Comments
 (0)