我一直在尝试使用 nohup 和 bash for 循环,然后我看到了这篇文章这里这很有帮助,给了我一个想法,但我的命令仍然无法正常工作。我现在的情况是这样的:
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}
?
答案1
该问题与 无关nohup
。
括号扩展是一种批判主义。运行代码sh
时不会扩展{0..9}
。使用bash
而不是sh
。
如果您仍想使用sh
,那么for i in $(seq 0 9); do …
。
(几乎总是应该使用双引号$()
,但在这种情况下不引用是正确的。)