我正在处理一个bash脚本,我需要将两个参数传递给一个函数。当我运行脚本时,一切正常,除非它解析我传递给它的文件,我总得到的结果是Association
(这是写在文本文件中)。你能告诉我需要做什么,以便它解析正确的信息,这应该是我输入的uid吗?我在输入123456789
中写道,因为它在文本文件中,但我再次得到Association
作为结果。
echo "Please enter the UID: ";
read uid
echo "Please enter server file: ";
read server
uidAssoc(){
arg1=$1
arg2=$2
for arg1 in $(cat ~/jlog/"$2"); do awk 'match($i, $2){ print substr($i, RSTART, RLENGTH)} ' ~/jlog/"$2";done;}
uidAssoc "$uid" "$server"
exit
答案 0 :(得分:1)
函数的右括号需要前面的空格(reference)。更可读地格式化代码将有所帮助。
uidAssoc(){
arg1=$1
arg2=$2
for arg1 in $(cat ~/jlog/"$2"); do
awk 'match($i, $2){ print substr($i, RSTART, RLENGTH)} ' ~/jlog/"$2"
done
}
有些问题:
arg1
和arg2
但从不使用它们?$i
是什么? (因为i
未设置,最终将评估整行)$2
与单引号外的$2
不同?