The discussion in the comments of this answer this answer made me wonder how hard it would be to write a built-in only version of dirname
.
The discussion in the comments of this answer made me wonder how hard it would be to write a built-in only version of dirname
.
The discussion in the comments of this answer made me wonder how hard it would be to write a built-in only version of dirname
.
Etan Reisner
- 681
- 3
- 11
#!/bin/sh
p=1ドル
alt=2ドル
skip78=
stripslashes() {
i=1ドル
while [ "$i" != "$o" ]; do
o=$i
i=${i%/}
done
eval "2ドル=\$i"
}
[ "$p" = '//' ] || {
case "$p" in
*[!/]*|'')
stripslashes "$p" p
case "$p" in
*/*)
p=${p%/*}
;;
*)
p=.
skip78=skip78
;;
esac
;;
*)
p=/
skip78=skip78
;;
esac
}
[ -n "$skip78" ] || {
{ [ "$p" != '//' ] || [ -nz "2ドル""$alt" ]; } && {
stripslashes "$p" p
[ -z "$p" ] && p=/
}
}
printf -- %s\\n "$p"
#!/bin/sh
p=1ドル
skip78=
stripslashes() {
i=1ドル
while [ "$i" != "$o" ]; do
o=$i
i=${i%/}
done
eval "2ドル=\$i"
}
[ "$p" = '//' ] || {
case "$p" in
*[!/]*|'')
stripslashes "$p" p
case "$p" in
*/*)
p=${p%/*}
;;
*)
p=.
skip78=skip78
;;
esac
;;
*)
p=/
skip78=skip78
;;
esac
}
[ -n "$skip78" ] || {
{ [ "$p" != '//' ] || [ -n "2ドル" ]; } && {
stripslashes "$p" p
[ -z "$p" ] && p=/
}
}
printf -- %s\\n "$p"
#!/bin/sh
p=1ドル
alt=2ドル
skip78=
stripslashes() {
i=1ドル
while [ "$i" != "$o" ]; do
o=$i
i=${i%/}
done
eval "2ドル=\$i"
}
[ "$p" = '//' ] || {
case "$p" in
*[!/]*|'')
stripslashes "$p" p
case "$p" in
*/*)
p=${p%/*}
;;
*)
p=.
skip78=skip78
;;
esac
;;
*)
p=/
skip78=skip78
;;
esac
}
[ -n "$skip78" ] || {
{ [ "$p" != '//' ] || [ -z "$alt" ]; } && {
stripslashes "$p" p
[ -z "$p" ] && p=/
}
}
printf -- %s\\n "$p"
Loading
Loading
Loading
lang-bash