我有这个遗留删除脚本脚本,它正在远程应用程序上执行一些删除工作。
处理完删除后,它将返回#completed successfully#
或将返回
#
*nothing more to delete*
*Program will exit*
#
我想分配其输出并执行删除脚本,只要其输出为" completed successfully
"。
我无法将脚本的结果分配给变量。我正在从文件夹X运行shell脚本,而删除脚本在文件夹Y中。 除了下面的脚本,我也尝试过:
response=$(cd $path_to_del;./delete.sh ...)
我无法完成这项工作。
#!/bin/bash
path_to_del=/apps/Utilities/unix/
response='completed successfully'
counter=1
while [[ $response == *successfully* ]]
do
response= working on batch number: $counter ...
echo $response
(cd $path_to_del;./delete.sh "-physicalDelete=true") > $response
echo response $response
((counter++))
done
echo deleting Done!
答案 0 :(得分:2)
将输出从子shell传递到更高级别shell的一般方法如下:
variable="$(command in subshell)"
或
read -t variable < <(command)
因此对脚本的修改可能如下所示:
response="$(cd $path_to_del;./delete.sh "-physicalDelete=true")"
或
cd $path_to_del
response="$(./delete.sh "-physicalDelete=true")"
此行将失败并需要修复:
response= working on batch number: