小编Sin*_*one的帖子

如何在Bash case语句中测试空字符串?

我有一个Bash脚本,它根据变量的值执行操作.case语句的一般语法是:

case ${command} in
   start)  do_start ;;
   stop)   do_stop ;;
   config) do_config ;;
   *)      do_help ;;
esac
Run Code Online (Sandbox Code Playgroud)

如果没有提供命令,我想执行默认例程,如果命令无法识别,我想执行do_help.我试着省略案例值:

case ${command} in
   )       do_default ;;
   ...
   *)      do_help ;;
esac
Run Code Online (Sandbox Code Playgroud)

结果是可以预测的,我想:

syntax error near unexpected token `)'
Run Code Online (Sandbox Code Playgroud)

然后我尝试在正则表达式中使用我最好的镜头:

case ${command} in
   ^$)     do_default ;;
   ...
   *)      do_help ;;
esac
Run Code Online (Sandbox Code Playgroud)

有了这个,空的$ {command}就会落到*case.

我想做不可能的事吗?

string bash null case

70
推荐指数
2
解决办法
3万
查看次数

如何删除vim中的非空格?

我正在寻找一个命令从光标删除到同一行上的第一个非空白字符.我用Google搜索了一段时间,尝试了几种可能性.没有快乐.那里有人知道怎么做吗?

vim whitespace

58
推荐指数
4
解决办法
2万
查看次数

Ant没有在其lib目录中识别JUnit jar?

我在Windows XP下使用Cygwin,我正在尝试让Ant使用JUnit而不编写任何类路径条目.JUnit的文档说我可以:

将junit.jar和ant-junit.jar放在ANT_HOME/lib中.

我在JUnit in Action中的便利副本说:

您可能已经注意到,您没有将JUnit JAR显式添加到类路径中.请记住,在安装Ant时,您将JUnit JAR文件复制到$ {ANT_HOME}/lib目录以使用junit Ant任务.因为junit.jar已经在您的类路径中,所以您无需在javac任务中指定它来编译测试.

$ ANT_HOME设置为Ant安装目录.在lib子目录中,我看到ant-junit.jar(与Ant一起安装)和junit-4.9.jar(由我复制).好像没事吧?但是测试编译步骤失败:

[javac] Compiling 1 source file to E:\tools\ctg\bin\test
[javac] E:\tools\ctg\src\test\TestAll.java:3: package org.junit does not exist
[javac] import org.junit.*;
Run Code Online (Sandbox Code Playgroud)

等等.我尝试将junit-4.9.jar重命名为junit.jar.没有快乐.我偷看了jar文件,看到包里面确实存在包.实际上,如果我在Ant类路径中明确包含那个jar文件,那么编译工作正常.

的Bleh.什么可能是错的?谢谢.

编辑:根据要求,这是javac目标:

<path id="classpath">
   <pathelement location="${app-bin}"/>
   <pathelement location="${test-bin}"/>
   <!--pathelement location="${junit-bin}"/-->
</path>

<target name="compile-test" depends="compile-app">
   <javac srcdir="${test-src}"
          destdir="${test-bin}"
          source="${java}"
          target="${java}"
          debug="on"
          includeantruntime="false">
      <compilerarg value="-Xlint"/>
      <classpath refid="classpath"/>
   </javac>
</target>
Run Code Online (Sandbox Code Playgroud)

请注意,JUnit二进制文件已注释掉.我的目标是删除它并使编译工作.

ant junit jar javac

2
推荐指数
1
解决办法
2994
查看次数

标签 统计

ant ×1

bash ×1

case ×1

jar ×1

javac ×1

junit ×1

null ×1

string ×1

vim ×1

whitespace ×1