我是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语句而没有尝试将它存储在一个变量中,但是对我来说没有多少用处而不能存储它......
非常感谢任何帮助
答案 0 :(得分:2)
要将命令的输出存储到BASH变量中,您应该使用:
VAR_NAME=$(command);
例如,如果要将系统当前时间存储到变量或 列表目录命令ejecution的结果:
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")