簡體   English   中英

運行腳本時命令開頭的語法錯誤

[英]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;
        ^

由於缺乏數據,我們無法 1:1 復制您的案例。 但是您始終可以使用帶有-x 標志的 bash 調試來查看它實際卡在的位置:

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

解決了問題-我不得不退出 PSQL 終端並在“項目”目錄中輸入命令

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM