[英]How to access a variable value in shell script file from java code written using netbeans
[英]How to assign a value into a variable in a shell script from a java code
我有一個變量參數(從Seleium Automation中的getText字段檢索),我想將值分配給shell腳本中的特定位置:
在Java中,這就是我的工作:
String ref = workcreation.getfield_ref().getText();
try { ProcessBuilder pb = new ProcessBuilder("/home/script.sh");
Process p = pb.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = reader.readLine()) != null)
{
System.out.println(line);
System.out.println("in " + reader);
}
p.waitFor();
}
catch (IOException e)
{
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
在腳本script.sh中,我想在該確切位置將ref的值分配給參數&ref:
##it is the value of &ref that i want to get
if [ -d "/data/techVersion_$ref" ]; then
echo "le dossier existe dans cccc "
else
echo " le dossier n'existe pas dans cccc !"
exit
fi
我能做什么?
您可以通過ProcessBuilder將參數傳遞給命令/腳本。
在您的Shell腳本中,您可以讀取參數。 一個簡單的例子是:
ProcessBuilder pb = new ProcessBuilder("/home/script.sh", "hello");
在您的腳本中:
echo "variable set in java: $1"
ProcessBuilder
采用任意數量的String
作為參數。 第一個必須是可執行文件本身,在您的情況下,它是腳本"/home/script.sh"
。 您當前僅將可執行文件作為單個參數傳遞。 只需將腳本的參數添加到ProcessBuilder
的構造函數調用即可。
你的線
ProcessBuilder pb = new ProcessBuilder("/home/script.sh");
應該用這個代替
ProcessBuilder pb = new ProcessBuilder("/home/script.sh", "firstArg", "secondArg");
或者創建一個List<String>
其中包含可執行文件作為第一個元素,后跟參數,例如
List<String> execPlusArgs = new ArrayList<String>();
execPlusArgs.add("/home/script.sh");
execPlusArgs.add("firstArg");
execPlusArgs.add("secondArg");
ProcessBuilder pb = new ProcessBuilder(execPlusArgs);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.