首页 > 解决方案 > 我正在尝试在我的 for 循环中运行 jobs -l 命令,但它只是显示参数而不是实际值

问题描述

我试图通过循环中的for循环运行脚本我在每个进程启动后给出jobs -l命令然后我捕获到日志中,它只显示带有参数而不是实际参数值的执行命令,有没有办法将包括实际参数的内容捕获到日志中。

for table_name in `cat exec.lst`
    ./abc.sh ${table_name} 1>&2 2>>table_name.log &

jobs -l | grep abc.sh > ${LOG_DIR}/tables_status.list 

jobs -l 命令的输出:

[1]10283 Done ./abc.sh ${table_name} 1>&2 2>>${LOG_DIR}/${table_name}.log
[2]10323 Done ./abc.sh ${table_name} 1>&2 2>>${LOG_DIR}/${table_name}.log
[3]10362 Done ./abc.sh ${table_name} 1>&2 2>>${LOG_DIR}/${table_name}.log            
[4]10403 Done ./abc.sh ${table_name} 1>&2 2>>${LOG_DIR}/${table_name}.log              
[5]10443 Done ./abc.sh ${table_name} 1>&2 2>>${LOG_DIR}/${table_name}.log              

有没有其他方法可以获取实际表名的信息。

预期输出:

[1]10283 Done ./abc.sh table1 1>&2 2>>${LOG_DIR}/table1.log
[2]10323 Done ./abc.sh table2 1>&2 2>>${LOG_DIR}/table2.log
[3]10362 Done ./abc.sh table3 1>&2 2>>${LOG_DIR}/table3.log               
[4]10403 Done ./abc.sh table4 1>&2 2>>${LOG_DIR}/table4.log                  
[5]10443 Done ./abc.sh table5 1>&2 2>>${LOG_DIR}/table5.log

标签: shellunixscripting

解决方案


试试这个,我不确定

./abc.sh ${table_name} 2>&1 >> {table_name}.log &

推荐阅读