【发布时间】:2022-06-10 20:24:50
【问题描述】:
我正在使用 bash 脚本,
当我运行它时
sh mysql-data-add.sh
效果很好,但是当我尝试在后台运行时,它会显示消息
sh mysql-data-add.sh &
-bash: A: command not found
我尝试在 mac 和 centos 服务器上运行。两者的结果相同。我也把它放在cron中,但到目前为止没有结果。但是,当我在没有“&”的情况下使用它时,脚本运行良好
脚本是
cd /home/domainsanalytics/db-new
unzip \*
gunzip \*
ls | grep csv > list.txt
while read -r line ###### Loop 1
do
while read -r line2 ###### Loop 1
do
data=$(echo $line2 | awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' | awk '{gsub(/\"/,"")};1' | tr -d \'\" )
d2=$(echo $data | awk -F, '{print $2}')
d3=$(echo $data | awk -F, '{print $3}')
d4=$(echo $data | awk -F, '{print $4}')
d5=$(echo $data | awk -F, '{print $5}')
d1=$d2+$d3
d6=$(echo $data | awk -F, '{print $6}')
d7=$(echo $data | awk -F, '{print $7}')
d8=$(echo $data | awk -F, '{print $8}')
d9=$(echo $data | awk -F, '{print $9}')
d10=$(echo $data | awk -F, '{print $10}')
d11=$(echo $data | awk -F, '{print $11}')
d12=$(echo $data | awk -F, '{print $12}')
d13=$(echo $data | awk -F, '{print $13}')
d14=$(echo $data | awk -F, '{print $14}')
d15=$(echo $data | awk -F, '{print $15}')
d16=$(echo $data | awk -F, '{print $16}')
d17=$(echo $data | awk -F, '{print $17}')
d18=$(echo $data | awk -F, '{print $18}')
d19=$(echo $data | awk -F, '{print $19}')
d20=$(echo $data | awk -F, '{print $20}')
d21=$(echo $data | awk -F, '{print $21}')
d22=$(echo $data | awk -F, '{print $22}')
d23=$(echo $data | awk -F, '{print $23}')
d24=$(echo $data | awk -F, '{print $24}')
d25=$(echo $data | awk -F, '{print $25}')
d26=$(echo $data | awk -F, '{print $26}')
d27=$(echo $data | awk -F, '{print $27}')
d28=$(echo $data | awk -F, '{print $28}')
d29=$(echo $data | awk -F, '{print $29}')
d30=$(echo $data | awk -F, '{print $30}')
d31=$(echo $data | awk -F, '{print $31}')
d32=$(echo $data | awk -F, '{print $32}')
d33=$(echo $data | awk -F, '{print $33}')
d34=$(echo $data | awk -F, '{print $34}')
d35=$(echo $data | awk -F, '{print $35}')
d36=$(echo $data | awk -F, '{print $36}')
d37=$(echo $data | awk -F, '{print $37}')
d38=$(echo $data | awk -F, '{print $38}')
d39=$(echo $data | awk -F, '{print $39}')
d40=$(echo $data | awk -F, '{print $40}')
d41=$(echo $data | awk -F, '{print $41}')
d42=$(echo $data | awk -F, '{print $42}')
d43=$(echo $data | awk -F, '{print $43}')
d44=$(echo $data | awk -F, '{print $44}')
d45=$(echo $data | awk -F, '{print $45}')
d46=$(echo $data | awk -F, '{print $46}')
d47=$(echo $data | awk -F, '{print $47}')
d48=$(echo $data | awk -F, '{print $48}')
d49=$(echo $data | awk -F, '{print $49}')
d50=$(echo $data | awk -F, '{print $50}')
d51=$(echo $data | awk -F, '{print $51}')
d52=$(echo $data | awk -F, '{print $52}')
d53=$(echo $data | awk -F, '{print $53}')
d54=$(echo $data | awk -F, '{print $54}')
d55=$(echo $data | awk -F, '{print $55}')
d56=$(echo $data | awk -F, '{print $56}')
d57=$(echo $data | awk -F, '{print $57}')
d58=$(echo $data | awk -F, '{print $58}')
d59=$(echo $d2 | cut -d "." -f 2,3)
d60=$(echo $data | awk -F, '{print $19}' | awk 'BEGIN{FS=OFS=","} {gsub(/[[:punct:] ]/,"",$1)} 1' | sed 's/[^0-9]*//g' )
mysql -u da_new -pxxxxxxxxxx -D da_new -e "insert into database123 (prime,domain_name,query_time,create_date,update_date,expiry_date,domain_registrar_id,domain_registrar_name,domain_registrar_whois,domain_registrar_url,registrant_name,registrant_company,registrant_address,registrant_city,registrant_state,registrant_zip,registrant_country,registrant_email,registrant_phone,registrant_fax,administrative_name,administrative_company,administrative_address,administrative_city,administrative_state,administrative_zip,administrative_country,administrative_email,administrative_phone,administrative_fax,technical_name,technical_company,technical_address,technical_city,technical_state,technical_zip,technical_country,technical_email,technical_phone,technical_fax,billing_name,billing_company,billing_address,billing_city,billing_state,billing_zip,billing_country,billing_email,billing_phone,billing_fax,name_server_1,name_server_2,name_server_3,name_server_4,domain_status_1,domain_status_2,domain_status_3,domain_status_4,tld_id,country_id,phone_id) VALUES ('$d1','$d2','$d3','$d4','$d5','$d6','$d7','$d8','$d9','$d10','$d11','$d12','$d13','$d14','$d15','$d16','$d17','$d18','$d19','$d20','$d21','$d22','$d23','$d24','$d25','$d26','$d27','$d28','$d29','$d30','$d31','$d32','$d33','$d34','$d35','$d36','$d37','$d38','$d39','$d40','$d41','$d42','$d43','$d44','$d45','$d46','$d47','$d48','$d49','$d50','$d51','$d52','$d53','$d54','$d55','$d56','$d57','$d58','$d59','$d17','$d60');" &
done < $line &
done < list.txt &
我只想在后台运行脚本。
【问题讨论】:
-
除了一些奇怪的东西(你真的在你的
db-new目录中有一个字面命名为*的压缩文件吗?),我看不出这样做的目的在后台运行脚本,因为您已经在后台运行了外部循环,并且在进入循环之前没有发生太多事情。除此之外,我会在脚本中打开set -x并将stderr 重定向到某个文件。从此跟踪中,您可以看到是哪一行导致了错误消息,这应该会为您提供一些解决方法的提示。