#!/bin/bash
hello()
{
SRC=$1
DEST=$2
for IP in `cat /opt/ankit/configs/machine.configs` ; do
echo $SRC | grep '*' > /dev/null
if test `echo $?` -eq 0 ; then
for STAR in $SRC ; do
echo -en "$IP"
echo -en "\n\t ARG1=$STAR ARG2=$2\n\n"
done
else
echo -en "$IP"
echo -en "\n\t ARG1=$SRC ARG2=$DEST\n\n"
fi
done
}
hello $1 $2
以上是我提供的shell脚本(SRC)& desitnation(DEST)路径.当我没有放入带有外卡的SRC路径时,它工作正常.当我运行这个shell脚本并给出’.pdf或’*’时,如下所示:
root@ankit1:~/as_prac# ./test.sh /home/dev/Examples/*.pdf /ankit_test/as
我得到以下输出:
192.168.1.6
ARG1=/home/dev/Examples/case_Contact.pdf ARG2=/home/dev/Examples/case_howard_county_library.pdf
DEST是/ ankit_test / as,但由于’*’,DEST也会被删除.预期的答案是
ARG1=/home/dev/Examples/case_Contact.pdf ARG2=/ankit_test/as
所以,如果你了解我想要做什么,请帮助我解决这个问题.
我会感激你的.
提前致谢!!!
我需要确切地知道我如何在我的程序中逐一使用’* .pdf’而不会打扰DEST.
解决方法:
您的脚本需要更多工作.
即使在逃避通配符后,您也无法获得预期的答案.你会得到:
ARG1=/home/dev/Examples/*.pdf ARG2=/ankit__test/as
请尝试以下方法:
for IP in `cat /opt/ankit/configs/machine.configs`
do
for i in $SRC
do
echo -en "$IP"
echo -en "\n\t ARG1=$i ARG2=$DEST\n\n"
done
done
像这样运行:
root@ankit1:~/as_prac# ./test.sh "/home/dev/Examples/*.pdf" /ankit__test/as
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。