linux - 有人可以帮我缩小这段代码吗?
问题描述
我需要上传这段代码,但是代码太大而且令人困惑,有人可以帮我总结一下这段代码还是让它变小一些?它只是有点令人困惑的输入部分。
input(){
while read line;
do
for name in $line;
do
if [ "$name" == "`cat /etc/passwd | cut -f1 -d: | grep "^$name"`" ]
then
#echo $name----------
if [[ $s -eq 0 && $l -eq 0 && $i -eq 0 && $I -eq 0 && $u -eq 0 ]]; then
standard
fi
if [ $s -eq 1 ]
then
keepSudoUser
fi
if [ $l -eq 1 ]
then
interactiveShell
fi
if [ $i -eq 1 ]
then
userUnder1000
fi
if [ $I -eq 1 ]
then
userOver1000
fi
if [ $u -eq 1 ]
then
excludeUser
fi
fi
NO=0
done
done
}
input
解决方案
这更紧凑:
input() {
while read -ra names; do
for name in "${names[@]}"; do
if grep -q "^${name}:" /etc/passwd; then
[[ "$s$l$i$I$u" == "00000" ]] && standard
(( s == 1 )) && keepSudoUser
(( l == 1 )) && interactiveShell
(( i == 1 )) && userUnder1000
(( I == 1 )) && userOver1000
(( u == 1 )) && excludeUser
fi
NO=0
done
done
}
input
更严格的翻译是
((s == 0 && l == 0 && i == 0 && I == 0 && u == 0)) && standard
# or
(( !(s || l || i || I || u) )) && standard
推荐阅读
- java - 错误:在减去 Integer 和 int 时,二元运算符“-”的操作数类型错误
- android - AlertDialog setContentView 不工作 API22
- javascript - 通过 npm (nodejs) 管理不同的代码库 (github repos)
- android - 阻止根用户安装我的应用程序
- sap - BO - 派生表中的对象
- sql - Oracle:将 WITH 子句子查询提取到流水线的链式函数中;效率比较
- php - 循环图像添加 laravel 控制器
- html - 没有当前目录的相对路径
- amazon-web-services - Amazon S3 文件上传有时会使用 Java sdk 失败
- python - 如何使用列值的组合来过滤数据并创建子集?