小编mah*_*esh的帖子

通过ant执行Shell脚本

我有一个名为Call.sh的shell脚本,它在内部调用其他脚本(即.sh),对我来说工作正常.现在我想从ant实用程序执行Call.sh.我创建了一个调用.sh的build.xml.但其中一个脚本要求输入,但是由于进一步的操作失败,ant没有给我机会给出输入.请查看以下代码

在build.xml

<project name="Sample" default="info">
<target name="info">
<exec executable="/bin/bash">
<arg value="/full path/Call.sh"/>
<arg value="/tmp"/>
</exec>
</target>
</project>
Run Code Online (Sandbox Code Playgroud)

Call.sh

    #!/bin/bash
    echo "Begining the execution......"
    sleep 1
    sh ./input.sh
    sh ./AutomateCom.sh
    sh ./Clean.sh
    echo "*****_______*****_______"
Run Code Online (Sandbox Code Playgroud)

input.sh

    #!/bin/bash

    echo "enter the Organization name"
    read Orgname
    echo "Orgname is : $Orgname"
    sed "s/000/$Orgname/g" Final.sql >> ExecuteID.sql
    echo "Organization name has been replaced with $Orgname"
Run Code Online (Sandbox Code Playgroud)

当我运行蚂蚁时:它不断运行....下面是我说蚂蚁时的o/p

[root@krog2-rhel5-64 Work]# ant
Buildfile: /root/test/Work/build.xml

info:
     [exec] enter the Organization name
     [exec] Orgname is :
     [exec] Organization …
Run Code Online (Sandbox Code Playgroud)

unix ant

9
推荐指数
2
解决办法
4万
查看次数

为什么这个bash脚本给我一个关于"missing`]'"的错误?

我必须检查文件的存在dir1dir2.然后,递归删除它们,否则打印一些消息.这是我的代码:

if [ -d "dir1"] && [-d "dir2"]; then
 echo "directory exists"
 echo "deleting existing files...."
sleep 2
 rm -r dir1
 rn -r dir1
 echo "exisitng files deleted!!"
else   
 echo "directory does not exist"
fi
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误的表达错误.

./check.sh: line 16: [: missing `]'
directory does not exist.
Run Code Online (Sandbox Code Playgroud)

这有什么不对?

unix linux bash

0
推荐指数
1
解决办法
285
查看次数

无法通过脚本文件导出变量

我试图通过myDeploy.sh导出变量,但导出未设置.当我回应它时,它不会回响.但是,当我在命令中明确设置变量时,它正确设置并回响.Below是我的代码的片段.

myDeploy.sh

 #!/bin/bash

# export the build root

export BUILD_ROOT=/tibco/data/GRISSOM2

export CUSTOM1=/tibco/data/GRISSOM2/DEPLOYMENT_ARTIFACTS/common/MDR_ITEM_E1/rulebase

export CLEANUP=$BUILD_ROOT/DEPLOYMENT_ARTIFACTS/common

cd $BUILD_ROOT/DEPLOYMENT_ARTIFACTS/common
Run Code Online (Sandbox Code Playgroud)

当我回响时,echo $BUILD_ROOT它并没有回应我的道路.但是当我在命令提示符上明确地这样做时

[root@krog3-rhel5-64 GRISSOM2]# export BUILD_ROOT=/tibco/data/GRISSOM2
Run Code Online (Sandbox Code Playgroud)

它设置得恰到好处并且也有回音.我错过了什么?

linux bash

0
推荐指数
1
解决办法
1062
查看次数

标签 统计

bash ×2

linux ×2

unix ×2

ant ×1