Linux 如何在';正在创建另一个变量

Linux 如何在';正在创建另一个变量,linux,bash,variables,Linux,Bash,Variables,我通过read命令创建了我的基本变量(我已经手动完成并使用脚本): 然后,我想使用该NAME变量来搜索文件并创建另一个变量: STUDENT=$(grep $NAME <students.dat | awk -F: '/$NAME/ {print $1}') STUDENT=$(grep$NAMEShell变量不是用单引号插入的,而是用双引号插入的 STUDENT=$(grep $NAME <students.dat | awk -F: "/$NAME/ {print \$1}")

我通过read命令创建了我的基本变量(我已经手动完成并使用脚本):

然后,我想使用该
NAME
变量来搜索文件并创建另一个变量:

STUDENT=$(grep $NAME <students.dat | awk -F: '/$NAME/ {print $1}')

STUDENT=$(grep$NAMEShell变量不是用单引号插入的,而是用双引号插入的

STUDENT=$(grep $NAME <students.dat | awk -F: "/$NAME/ {print \$1}")

STUDENT=$(grep$NAMEShell变量不是用单引号插入的,而是用双引号插入的

STUDENT=$(grep $NAME <students.dat | awk -F: "/$NAME/ {print \$1}")
STUDENT=$(grep$NAME@user1615415:尝试:

cat script.ksh
echo "Enter name.."
read NAME
STUDENT=$(awk -vname="$NAME" -F: '($0 ~ name){print $3}' student.dat)
@user1615415:请尝试:

cat script.ksh
echo "Enter name.."
read NAME
STUDENT=$(awk -vname="$NAME" -F: '($0 ~ name){print $3}' student.dat)

使用
-v
选项传递
$NAME
的值更安全。很漂亮!这样做了。谢谢!传递到
grep
时最好将$NAME括在双引号中。另外,使用
--
防止$NAME中任何前导的
-
导致的失败。因此,
grep--“$NAME”
要好得多。使用
-v
选项传递
$NAME
的值更安全。很漂亮!这样做了。谢谢!传递到
grep
时最好将$NAME括在双引号中。另外,使用
--
防止$NAME中的任何前导
-
导致的失败。因此,
grep--“$NAME”
更好。