【Shell】Shell最後の文字を削除

682 ワード

起因:shellスクリプト:各行のテキストをデータベースに自動的に挿入します.
File=$1
if [[ "$File" == "" ]]; then
echo "usage: $0 File"
exit -1
fi


while read line
do
if [ -z "$line" ];then
 echo "is null"
else

echo ${line%?}
mysql $database -hIp -uUsername -pPassword -e "insert into tablename (ColumnName) values('${line}');"
fi
done < ${File}

データベースに挿入されたデータ表示例外は、テキストの行の最後に改行があるためです.
shellで最後の文字を削除
${line%?}

スクリプトの変更
mysql $database -hIp -uUsername -pPassword -e "insert into tablename (ColumnName) values('${line%?}');"

エラーデータを削除し、スクリプトを再実行すればよい