Nohup ใช้กับ bash for loop ไม่ได้

Sep 19 2020

ฉันพยายามใช้ nohup กับ bash for loop และฉันเจอโพสต์นี้ที่นี่ซึ่งมีประโยชน์และให้ความคิดแก่ฉัน แต่คำสั่งของฉันยังทำงานไม่ถูกต้อง สิ่งที่ฉันมีตอนนี้ดูเหมือน:

nohup sh -c 'for i in {0..9}; do spark-submit --class some.Code /some/Jar.jar --input_path /some/path/part-001"$i"* > test_log.log; done' &

เมื่อฉันรันงานนี้ล้มเหลวโดยมีข้อยกเว้นต่อไปนี้ว่าไม่มีพา ธ อินพุตและแสดงพา ธ เป็น:

/some/path/part-001{0..9}*

ฉันจะเอาสิ่งนี้มาแทนที่$iด้วยค่าจริงของ i ไม่ใช่สตริงได้{0..9}อย่างไร

คำตอบ

2 KamilMaciorowski Sep 18 2020 at 23:17

nohupปัญหามีอะไรจะทำอย่างไรกับ

การขยายตัวรั้งเป็น bashism วิ่งรหัสของคุณซึ่งไม่ขยายsh {0..9}ใช้bashแทนsh.

หากคุณยังคงต้องการที่จะใช้แล้วsh (เกือบทุกครั้งควรอ้างสองครั้งแต่ในกรณีนี้การไม่อ้างถึงเป็นสิ่งที่ถูกต้อง)for i in $(seq 0 9); do …
$()