我正在尝试使用bash脚本来使用我提供的用户名。将Username作为变量并将其传递给我的awk脚本,这样我就可以按照我在awk脚本中的方式显示用户的信息。 这是我到目前为止所做的。
#!/bin/bash
read -p "Username:" $user
awk -v var="$user" -f passwd.awk /etc/passwd
AWK脚本
BEGIN { FS = ":" }
if (var == $1){
print ""
print "UserName:"$1
print "Password Encrytped:"$2
print "User Number:"$3
print "User Group:" $4
print "FullName:" $5
print "User Directory:" $6
print "User Shell:" $7
}
答案 0 :(得分:2)
而不是:
read -p "Username:" $user
使用:
read -p "Username: " user
您需要为read
提供变量的名称,而不是其值。
答案 1 :(得分:1)
您需要将awk if
语句括在块
BEGIN { FS = ":" }
{
if (var == $1){
print ""
print "UserName:"$1
print "Password Encrypted:"$2
print "User Number:"$3
print "User Group:" $4
print "FullName:" $5
print "User Directory:" $6
print "User Shell:" $7
}
}
您还需要anubhava's answer,删除$
行上的印记(read
)。