通常包含脚本的方式是"源"
例如:
main.sh:
#!/bin/bash
source incl.sh
echo "The main script"
Run Code Online (Sandbox Code Playgroud)
incl.sh:
echo "The included script"
Run Code Online (Sandbox Code Playgroud)
执行"./main.sh"的输出是:
The included script
The main script
Run Code Online (Sandbox Code Playgroud)
...现在,如果您尝试从其他位置执行该shell脚本,除非它在您的路径中,否则无法找到包含.
确保脚本可以找到包含脚本的好方法是什么,特别是如果脚本需要可移植的话?
(见下面的编辑.)
我不能只使用类路径的原因是因为我需要管理一些非java库,而我正在编译一个非java项目.
我正在尝试在antrun调用中使用maven依赖项,遵循maven站点上的文档:
http://maven.apache.org/plugins/maven-antrun-plugin/examples/classpaths.html
在页面的底部:
<property name="mvn.dependency.jar"
refid="maven.dependency.my.group.id:my.artifact.id:classifier:jar.path"/>
<echo message="My Dependency JAR-Path: ${mvn.dependency.jar}"/>
Run Code Online (Sandbox Code Playgroud)
无论我如何尝试,我都无法完成这项工作.我已经在refid内容周围尝试了$ {},我尝试过冒号,句号等等.作为我能想到的各种方式的分隔符.
任何人都可以告诉我,对于一些常见的依赖,refid应该是什么样的?
编辑:
感谢您的回复.
使用您的示例SingleShot,我有以下内容:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>create-messages</id>
<phase>compile</phase>
<configuration>
<tasks>
<property name="build.compiler" value="extJavac"/>
<property name="compile_classpath" refid="maven.compile.classpath"/>
<property name="runtime_classpath" refid="maven.runtime.classpath"/>
<property name="test_classpath" refid="maven.test.classpath"/>
<property name="plugin_classpath" refid="maven.plugin.classpath"/>
<property name="log4j.jar" refid="log4j:log4j:jar"/>
<echo message="Where is the Log4J JAR?: ${log4j.jar}"/>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
</dependencies>
</plugin>
Run Code Online (Sandbox Code Playgroud)
这是我在运行mvn compile时得到的:
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] …
Run Code Online (Sandbox Code Playgroud) 在你自己的应用程序中.
[编辑]
好吧,所以我完全同意 - 比你知道的更多 - 没有模棱两可的图形表情符号是令人厌恶的.但!当项目所有者告诉我必须支持图形表情符号时,这对我没有帮助.
[/编辑]
问题比最初看起来更复杂,尤其是考虑到编辑,自动换行,可变宽度字体和颜色表情.
所以我的问题实际上是对那些做过这个的人,你想出一个令人满意的渲染表情的方式,这不只是一次大规模的黑客行为吗?
开始讨论:
在两个实现中,我尝试了以下方法.
在3D应用程序中,其中文本行呈现为"纹理"; 我用图像替换了表情符号字符串,匹配文本渲染的类型,因此表情符号只是文本的另一个元素.
基本上,文本呈现引擎必须在最深层次上进行修改.这会产生很好的效果,但是非常耗时,并且很难做到正确(或者至少对我而言; P)
在第二种方法中(使用不同的语言和平台),我决定尝试使用单个字符替换表情字符串并在替换字符上绘制情感来尝试更高级别的"假".这当然有很多局限性,但具有实施起来相当快的优点,并且可以在不费力的情况下达到相当稳定的状态.
有没有办法通过二进制赋值获得负数而不发出警告,同时保留其他更有效的警告。还是我在思考这个问题是错误的?
const NEG: i32 = 0b1000_0000_0000_0000_0000_0000_0000_0000;
// -2147483648
Run Code Online (Sandbox Code Playgroud)
const NEG: i32 = 0b1000_0000_0000_0000_0000_0000_0000_0000;
// -2147483648
Run Code Online (Sandbox Code Playgroud)