我现在正在编写的脚本用于将 3 列的数据保存到三个不同的数组中,稍后将用于不同的部分。
现在脚本 callconv.sh 看起来像这样:
#! /bin/bash
array=$(sqlite3 /home/pi/dir/rec_call/CallRecords.sqlitedb "SELECT address FROM calls")
array2=$(sqlite3 /home/pi/dir/rec_call/CallRecords.sqlitedb "SELECT timestamp FROM calls")
array3=$(sqlite3 /home/pi/dir/rec_call/CallRecords.sqlitedb "SELECT date FROM calls")
Rest of script...
问题是,一旦我运行 callconv.sh,仅包含这 3 行,大约创建了 30 或 40 个名为 callconv.sh 和 sqlite3 的新进程。具体来说,其中许多都带有已失效的标签。
我希望该脚本能够在带有 Raspbmc 的 Raspberry Pi 上运行,但这不起作用。然而,当我尝试在我的 CentOS vps 上运行它时,它运行没有任何问题。这个问题有可能与操作系统有关吗?或者你们能告诉我我是否在这里做了一些明显错误的事情吗?谢谢!
答案1
您如何列出流程来查找“30 或 40”个流程?你确定你没有在看线程而不是流程?高级程序(例如数据库)在启动时生成多个线程是很常见的。
旁注:该代码不会创建数组- 命令的标准输出sqlite3
将保存为细绳变量。如果要将命令输出(以 分隔$IFS
)保存为数组,则需要使用my_variable=($(my_command))
.