นี่เป็นข้อผิดพลาดที่ฉันได้รับและมันล้มเหลวเนื่องจากตัวแปรที่มีค่าควรจะเป็น 2 (ฉันได้รับสิ่งนี้โดยใช้กselect * from tabel
) ฉันได้รับช่องว่างในตัวแปรนั้น
+ 0 !=
2
./setjobs[19]: 0: not found.
ฉันจะลบช่องว่างเหล่านั้นทั้งหมดหรือขึ้นบรรทัดใหม่ออกจากตัวแปรนั้นได้อย่างไร Can tr
, sed
หรืออะไรความช่วยเหลือ?
นี่คือสิ่งที่ฉันทำ:
set_jobs_count=$(echo "set heading off;
select count(*) from oppar_db
where ( oppar_db_job_name, oppar_db_job_rec ) in ($var) ;" | \
sqlplus -s ${OP_ORA_USER}/${OP_ORA_PASS}@$OPERATIONAL_DB_NAME)
ใช้งานได้ตามที่แนะนำ:
| sed 's/[[:space:]]//g'
แต่ฉันยังคงได้รับค่าเช่น:
set_jobs_count=
2
1
คุณสามารถส่งสตริงไปยัง int ในคำสั่ง select วิธีการทำนั้นขึ้นอยู่กับฐานข้อมูล, Sybase, Oracle, MySQL และอื่น ๆ
—
bsd
ฉันจะทำอย่างไรฉันมี oracle 9i
—
munish
ใช้ sed มัน
—
BSD
| sed 's/[[:space:]]//g'
จะยุบช่องว่าง
ขอบคุณทำงานได้ในระดับหนึ่ง แต่ก็ยังคงมีค่าของตัวแปรมาเหมือนกัน
—
munish
set_jobs_count= 2
คุณอาจทำได้โดยไม่ต้องใช้เครื่องมือภายนอก ดูstackoverflow.com/a/3352015/587717
—
Edd Steel