我正在为Linux Ubuntu开发数据库服务。我的GUI终端菜单程序中存在用于连接数据库的错误。

码:

 echo -n "Database Name > "
 read character
 i=0
 while [ $i != -1 ]; do
  line=awk NR==$i /etc/kittydb/databases.txt
  if [ $character = $line ]; then
   echo "Done"
   break
  else
  $i+1;
  fi
 done


输出:

/usr/local/bin/kittydb: 114: [: =: argument expected
/usr/local/bin/kittydb: 118: /usr/local/bin/kittydb: 0+1: not found
/usr/local/bin/kittydb: 113: /usr/local/bin/kittydb: /etc/kittydb/databases.txt: Permission denied


如何解决以上错误?

最佳答案

如果您需要检查数据库名称是否在文件中,并且仅在首次匹配时才显示“完成”,请使用:

#!/bin/bash

echo -n "Database Name > "
read character
awk -v cha=$character '$0 == cha {print "Done";exit;}' /etc/kittydb/databases.txt


您不需要for循环即可遍历文件。 awk会这样做。

关于linux - 数据库选择器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33950237/

10-15 08:34