提问人:A. S. 提问时间:9/22/2022 最后编辑:A. S. 更新时间:9/23/2022 访问量:160
运行脚本时命令开头的语法错误
Syntax error at beginning of command when running script
问:
我正在尝试使用 ./insert_data.sh; 运行脚本我收到一个错误,说在“”处或附近有语法错误。 我在PSQL工作,谢谢
编辑#1:我的脚本:
#!/bin/bash
# Script to insert data from courses.csv and students.csv into students database
PSQL="psql -X --username=freecodecamp --dbname=students --no-align --tuples-only -c"
cat courses_test.csv | while IFS="," read MAJOR COURSE
do
# get major_id
MAJOR_ID=$($PSQL "SELECT major_id FROM majors WHERE major='$MAJOR'")
# if not found
if [[ -z $MAJOR_ID ]]
then
# insert major
INSERT_MAJOR_RESULT=$($PSQL "INSERT INTO majors(major) VALUES('$MAJOR')")
echo $INSERT_MAJOR_RESULT
# get new major_id
fi
# get course_id
# if not found
# insert course
# get new course_id
# insert into majors_courses
done
编辑#2:我用来运行脚本的命令:./insert_data.sh;我收到的错误:
students=> ./insert_data.sh;
ERROR: syntax error at or near "."
LINE 1: ./insert_data.sh;
^
答:
0赞
pr0logas
9/22/2022
#1
由于缺乏数据,我们无法 1:1 复制您的案例。但是你总是可以使用带有 -x 标志的 bash debug 来查看它实际卡住的位置:
test@test:/tmp$ bash -x ./test.sh
+ PSQL='psql -X --username=freecodecamp --dbname=students --no-align --tuples-only -c'
+ cat courses_test.csv
+ IFS=,
+ read MAJOR COURSE
++ psql -X --username=freecodecamp --dbname=students --no-align --tuples-only -c 'SELECT major_id FROM majors WHERE major='\''"Sex"'\'''
psql: error: could not connect to server: No such file or directory
1赞
A. S.
9/23/2022
#2
解决了问题 - 我必须离开PSQL终端并在“project”目录中输入命令
上一个:命令替换表达式中的括号
评论