我试图将awk命令的内容放入bash数组中,但是我有点麻烦。
>>test.sh
f_checkuser() {
_l="/etc/login.defs"
_p="/etc/passwd"
## get mini UID limit ##
l=$(grep "^UID_MIN" $_l)
## get max UID limit ##
l1=$(grep "^UID_MAX" $_l)
awk -F':' -v "min=${l##UID_MIN}" -v "max=${l1##UID_MAX}" '{ if ( $3 >= min && $3 <= max && $7 != "/sbin/nologin" ) print $0 }' "$_p"
}
...
使用过的文件:
示例文件:/etc/login.defs
>>/etc/login.defs
### Min/max values for automatic uid selection in useradd
UID_MIN 1000
UID_MAX 60000
示例文件:/ etc / passwd
>>/etc/passwd
root:x:0:0:root:/root:/usr/bin/zsh
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
admin:x:1000:1000:Administrator,,,:/home/admin:/bin/bash
daniel:x:1001:1001:Daniel,,,:/home/daniel:/bin/bash
输出如下:
admin:x:1000:1000:Administrator,,,:/home/admin:/bin/bash
daniel:x:1001:1001:User,,,:/home/user:/bin/bash
分别(awk ... print $ 1}'“$ _p”)
admin
daniel
现在我的问题是在数组中保存awk输出以将其用作变量。
>>test.sh
...
f_checkuser
echo "Array items and indexes:"
for index in ${!LOKAL_USERS[*]}
do
printf "%4d: %s\n" $index ${array[$index]}
done
它可能/应该看起来像这个例子。
Array items and indexes:
0: admin
1: daniel
特别是我将成为系统的所有用户(不是root,bin,sys,ssh,...)而没有数组中的阻塞用户。 也许有人有另一个想法来解决我的问题?
答案 0 :(得分:1)
您是否尝试将一个脚本的输出设置为数组?有bash
有办法做到这一点。例如,
a=( $(seq 1 10) ); echo ${a[1]}
将使用元素1到10填充数组a并将打印2,由seq
生成的第二行(数组索引从零开始)。只需用您的脚本替换$(...)
的内容即可。
答案 1 :(得分:0)
答案 2 :(得分:-2)
一个解决方案:
Array items and indexes:
0: daniel
1: admin
输出:
var reader = new FileReader();
var image = new Image();
reader.readAsDataURL(input.files[0]);
reader.onload = function (e) {
image.src = e.target.result;
var valid = false;
valid = image.onload = function() {
if (thi.width > 200) {
valid = true;
}
return valid;
}();
}
- here i would like to return "valid"
但我更喜欢观察没有新的临时文件。 那么,如果没有临时文件,还有其他想法吗?