1

我对 shell 脚本还很陌生,我只是在做这些脚本,因为我该是学习的时候了,而且我需要工作。

我一直在环顾四周,并尝试了多种方法来使其正常工作,但似乎无法弄清楚。

我有一个脚本,我想在其中访问 SQLite 数据库并将 select 语句的结果存储在变量中。

到目前为止我尝试过的

这只是与撇号内的内容相呼应。如果我在撇号之前删除美元符号,我会得到相同的结果。

track_name=$'sqlite3 "$database_name" << EOF
select name from track where id = "$required_track";
exit;
EOF'

在这里,“track_name”附近出现语法错误

sqlite3 "$database_name" << EOF
track_name='select name from track where id = "$required_track";'
exit;
EOF

我已经成功执行了 select 语句,但没有尝试将其存储在变量中,但它对我没有多大用处,无法存储它......

任何帮助将非常感激

4

1 回答 1

2

要将命令的输出存储到 BASH 变量中,您应该使用:

VAR_NAME=$(command);

例如,如果要将系统当前时间存储到变量或列表目录命令弹出的结果中:

DATE_EXAMPLE_VAR=$(date); #Stores 'date' command output into DATE_EXAMPLE_VAR
echo $DATE_EXAMPLE_VAR; #Shows DATE_EXAMPLE_VAR contents

DIRCONTENTS=$(ls); #Stores a list of your current directory contents.

同样,这应该适用于sqlite3

track_name=$(sqlite3 "$database_name" "select name from track where id = $required_track")
于 2013-04-15T10:15:35.410 回答