bash 스크립트에서 다음을 수행하고 싶습니다.
여기 내 코드 :
#!/bin/bash
INPath="/home/bono/RD/BV-OUT/"
while
read line
do
RD="$line"
RDFile="$INPath$RD"
echo -e $RDFile
###MYSQLs:
mysql -u root -D RD --local-infile << EOF
LOAD DATA LOCAL INFILE '$RDFile'
INTO TABLE bv_tmp_all FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n';
EOF
##### EOSQL
done < /home/bono/RD/BV-OUT/allto468
에코는 올바른 경로와 파일 이름을 표시하지만 mysql은 항상 다음과 같이 말합니다.
not found (Errcode: 2 - File or Directory not found)
두 문자열을 연결하는 다른 방법을 시도했지만 아무것도 작동하지 않았습니다.
다음 코드는 연결없이 mysql과 함께 작동하지만 필요한 것은 아닙니다.
#!/bin/bash
while
read line
do
RDFile="/home/bono/RD/BV-OUT/468-R11"
echo -e $RDFile
###MYSQLs:
mysql -u root -D RD --local-infile << EOF
LOAD DATA LOCAL INFILE '$RDFile'
INTO TABLE bv_tmp_all FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n';
EOF
##### EOSQL
done < /home/bono/RD/BV-OUT/allto468
연결에 어떤 문제가 있습니까?
allto468
자체에 \ r \ n 줄 끝이 있으면 $ line은 다음과 같이 표시 468-R11\r
되며 해당 파일은 확실히 찾을 수 없습니다.
솔루션
dos2unix
allto468 파일에서 실행 하여 문제를 한 번 수정합니다.done
라인을 다음으로 변경
done < <(sed 's/\r$//' /home/bono/RD/BV-OUT/allto468)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다