我的工作定义非常长。我想知道是否有办法将它分成多行以便于阅读。我试过了' \'或者' \ n'但他们都创造了就业机会,例如:
xd:>job create --name myHttpJob --definition "httpJob \n
job create --name myHttpJob --definition "httpJob \n
^
Cannot have an unbalanced number of quotation marks
xd:>--listeners=disable" --deploy
Command '--listeners=disable" --deploy' not found (for assistance press TAB)
xd:>job create --name myHttpJob --definition "httpJob \
job create --name myHttpJob --definition "httpJob \
^
Ran out of input in escape sequence
xd:>--listeners=disable" --deploy
Command '--listeners=disable" --deploy' not found (for assistance press TAB)
答案 0 :(得分:1)
希望这仍然有助于那里的人。我不认为你能用当前版本的xd-shell将命令分成多行,但我所做的是通过使用shell脚本完成整个过程来外化整个过程。如果您需要多次运行相同或类似的命令并且可以参数化您的命令,这将非常有用。下面是shell脚本将包含的示例(让我们调用文件myxdshellfile.sh)。我的所有自定义模块上传/部署/定义和流也有类似的脚本。如果设置得很好,可以将其参数化以便部署到不同的环境中,并将环境作为输入arg传递。
echo -n -e " \
job create --name ${module}_${version} \
--definition \"${moduleDefinition} \
--restartable=false \
--dateFormat=yyyy-MM-dd \
--makeUnique=true \
--partitionResultsTimeout=7200000 \
\
--jdbcDriver=com.mysql.jdbc.Driver \
--jdbcUser=${user} \
--jdbcPassword=${pwd} \
--jdbcUrl=jdbc:mysql://${dbhost} \
\
--version=${version} \
\
\"
" > "$cmdfile"
#write string to file
echo -e -n .${shellpath}/shell/bin/xd-shell --cmdfile ${cmdfile}
#see what's in the file
cat ${cmdfile}
#execute spring-xd shell
bash ${shellpath}/shell/bin/xd-shell --cmdfile ${cmdfile}