我想在我的“main”tcl程序中植入多个Bash脚本 - 所以没有外部的.sh脚本 - 我想把它放在一个地方。我已经找到了如何将一个脚本植入tcl:
set printScript { echo $HOME }
proc printProc {printScript} {
puts [exec /bin/bash << $printScript]
}
printProc $printScript
我现在的问题是: 如何使用此概念来实现调用其他脚本的脚本,而无需将调用脚本硬编码到调用脚本中? 假设我有这样的事情:
script1.sh
script2="$PWD/script2.sh"
#do some stuff
if [something]
then
$script2
fi
#do some more stuff
上述概念可以用来解决我的问题吗?怎么办呢?
答案 0 :(得分:0)
每个脚本都是一个字符串,所以,是的,您可以使用字符串操作来构建脚本原语中的脚本。这不是最好的解决方案,但它是可能的。如果您选择通过字符串操作构建脚本,则string map
替换可能比通过变量替换更好。以下内容:
set script1 {
#do some stuff
if [something]
then
%X
fi
#do some more stuff
}
set maplist {%% %}
lappend maplist %X {$PWD/script2.sh}
set executable_script [string map $maplist $script1]
其他解决方案包括