Nohup 不能正确使用 bash for 循环
Nohup does not work with bash for loop properly
我一直在尝试将 nohup 与 bash for 循环一起使用,我遇到了这个 post here 这很有帮助并给了我一个想法,但我的命令仍然无法正常工作适当地。我现在拥有的看起来像:
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 的实际值而不是字符串 {0..9}
替换 $i
?
谢谢
恕我直言,sh 在您的系统上不是 bash 的别名。
如果你这样开始:
nohup bash -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' &
它将开始工作。
据我所知,使用的语法是 bash 自己的语法。
Ps: 但我不确定是否需要 $i 周围的 " 标记。我更喜欢 ${i} 形式。
编辑:如果在你的系统上 sh 是 dash 的别名,那么你可以使用这个:
nohup sh -c 'for i in `seq 0 9`; do spark-submit --class some.Code /some/Jar.jar --input_path /some/path/part-001"$i"* > test_log.log; done &'
我一直在尝试将 nohup 与 bash for 循环一起使用,我遇到了这个 post here 这很有帮助并给了我一个想法,但我的命令仍然无法正常工作适当地。我现在拥有的看起来像:
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 的实际值而不是字符串 {0..9}
替换 $i
?
谢谢
恕我直言,sh 在您的系统上不是 bash 的别名。 如果你这样开始:
nohup bash -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' &
它将开始工作。 据我所知,使用的语法是 bash 自己的语法。
Ps: 但我不确定是否需要 $i 周围的 " 标记。我更喜欢 ${i} 形式。
编辑:如果在你的系统上 sh 是 dash 的别名,那么你可以使用这个:
nohup sh -c 'for i in `seq 0 9`; do spark-submit --class some.Code /some/Jar.jar --input_path /some/path/part-001"$i"* > test_log.log; done &'