如何使用Scala字符串插值来参数化bash脚本?
我想从Scala内部编译一个bash脚本。为了简化这一点,我想使用字符串插值。然而,bash变量和Scala字符串插值似乎不能很好地相互配合。这里有一个例子如何使用Scala字符串插值来参数化bash脚本?,bash,scala,Bash,Scala,我想从Scala内部编译一个bash脚本。为了简化这一点,我想使用字符串插值。然而,bash变量和Scala字符串插值似乎不能很好地相互配合。这里有一个例子 val someFile="test.txt" val bashScript = s""" newFile=${someFile}.filtered grep foobar $someFile > $newFile """ 这将导致编译错误,因为$newFile无法插值。然而,保持$newFile的原样会得到预期的有效bash脚本
val someFile="test.txt"
val bashScript = s"""
newFile=${someFile}.filtered
grep foobar $someFile > $newFile
"""
这将导致编译错误,因为$newFile无法插值。然而,保持$newFile的原样会得到预期的有效bash脚本
我想到了可能的解决方案,但我不知道它们是否可行,也不知道如何实施
字符串插值的转义字符是
$
,因此
val someFile="test.txt"
val bashScript = s"""
newFile=${someFile}.filtered
grep foobar $someFile > $$newFile
"""
应该做你想做的。字符串插值的转义字符是
$
,所以
val someFile="test.txt"
val bashScript = s"""
newFile=${someFile}.filtered
grep foobar $someFile > $$newFile
"""
应该做你想做的。你可以通过添加第二个美元符号来避开美元符号。因此,以下方法应该有效
val someFile="test.txt"
val bashScript = s"""
newFile=${someFile}.filtered
grep foobar $someFile > $$newFile
"""
您可以通过添加第二个美元符号来避开美元符号。因此,以下方法应该有效
val someFile="test.txt"
val bashScript = s"""
newFile=${someFile}.filtered
grep foobar $someFile > $$newFile
"""
看一看亚扪人的行动然后你根本不必使用BASH看一看亚扪人的行动然后你根本不必使用BASH