小编nic*_*laj的帖子

从shell脚本启动Web浏览器的干净方法?

在bash脚本中,我需要启动用户Web浏览器.似乎有很多方法可以做到这一点:

  • $BROWSER
  • xdg-open
  • gnome-open 在GNOME上
  • www-browser
  • x-www-browser
  • ...

在大多数平台上是否有更多标准而非其他方式来实现这一点,或者我应该采用以下方式:

#/usr/bin/env bash

if [ -n $BROWSER ]; then
  $BROWSER 'http://wwww.google.com'
elif which xdg-open > /dev/null; then
  xdg-open 'http://wwww.google.com'
elif which gnome-open > /dev/null; then
  gnome-open 'http://wwww.google.com'
# elif bla bla bla...
else
  echo "Could not detect the web browser to use."
fi
Run Code Online (Sandbox Code Playgroud)

bash shell standards command-line standards-compliance

91
推荐指数
4
解决办法
9万
查看次数

shell脚本中的$ @和$*有什么区别?

在shell脚本中,$@和之间有什么区别$*

获取脚本参数的首选方法是哪一种?

不同的shell解释器之间是否存在差异?

shell scripting

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

如何在bash中获取光标位置?

在bash脚本中,我想在变量中获取游标列.看起来使用ANSI转义码{ESC}[6n是获取它的唯一方法,例如以下方式:

# Query the cursor position
echo -en '\033[6n'

# Read it to a variable
read -d R CURCOL

# Extract the column from the variable
CURCOL="${CURCOL##*;}"

# We have the column in the variable
echo $CURCOL
Run Code Online (Sandbox Code Playgroud)

不幸的是,这会将字符打印到标准输出,我想静静地进行.此外,这不是很便携......

是否有一种纯粹的bash方式来实现这一目标?

bash cursor

25
推荐指数
4
解决办法
3万
查看次数

如何以编程方式获取jmap直方图?

我想jmap -histo从受监控的应用程序内部以编程方式获得相当于的输出.我看到通过HotSpot诊断bean可以触发二进制堆转储,但我看不到如何获取直方图数据.可能吗 ?

java memory heap jvm-hotspot heap-dump

13
推荐指数
1
解决办法
1958
查看次数

使用具有临时端口的JMX服务器时,如何获取服务器端口号?

使用以下选项启动Java应用程序时:

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=0
-Dcom.sun.management.jmxremote.local.only=false
Run Code Online (Sandbox Code Playgroud)

Java使用短暂的端口,这对于避免冲突非常有用.

是否可以从应用程序中以编程方式获取实际端口(或连接URL)?

java jmx mbeans rmi

11
推荐指数
1
解决办法
459
查看次数

Debian打包:将文件部署到用户主目录

我使用Debhelper创建Debian包.要部署文件和目录,我使用debian/installdebian/dirs文件.

现在我希望我的包将默认用户配置文件部署到$ HOME/.mypackagerc(就像.bashrc和朋友一样).

Debhelper是否提供了这样做的方法,或者我应该:

  • 在postinst脚本中执行此操作
  • 或者甚至在我的程序中执行此操作,首次执行

debian packaging software-packaging debian-based debhelper

6
推荐指数
1
解决办法
1919
查看次数

是否有可能直接导入Python 3中的枚举字段?

假设我有以下枚举:

class LineStyle(Enum):
    SOLID = 'solid'
    DASHED = 'dashed'
    DASHDOT = 'dashdot'
    DOTTED = 'dotted'
Run Code Online (Sandbox Code Playgroud)

有可能以某种方式直接导入此枚举中的字段吗?

例如:

from mymodule.LineStyle import SOLID, DASHED  # does not work
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一解决方法是将所有枚举字段声明为模块变量:

class LineStyle(Enum):
    SOLID = 'solid'
    DASHED = 'dashed'
    DASHDOT = 'dashdot'
    DOTTED = 'dotted'

SOLID = LineStyle.SOLID
DASHED = LineStyle.DASHED
DASHDOT = LineStyle.DASHDOT
DOTTED = LineStyle.DOTTED
Run Code Online (Sandbox Code Playgroud)

有没有更优雅的方式来做到这一点?

python enums python-import python-3.x

6
推荐指数
2
解决办法
1302
查看次数

JAXB - 从XSD生成类 - 将枚举转换为字符串

使用JAXB,我们直接生成Java bean.在XSD中,我们有一个枚举类型:

  <xs:simpleType name="promptBeforeCloseType">
    <xs:restriction base="xs:string">
     <xs:enumeration value="default"/>
     <xs:enumeration value="always"/>
     <xs:enumeration value="never"/>
    </xs:restriction>
  </xs:simpleType>
Run Code Online (Sandbox Code Playgroud)

JAXB使用此类型为字段生成枚举类型.我们希望将它转换为生成的Java类中的String,因为这些类映射到ActionScript类,并且ActionScript中没有枚举类型.

有没有办法实现它,实现某种转换器?可能与XmlJavaTypeAdapter一起

java jaxb

4
推荐指数
1
解决办法
6386
查看次数

Maven中的Meta配置文件

我正在寻找一种方法来创建只在Maven中激活子配置文件的元配置文件.我们来看一个非常具体的例子.我有以下个人资料:

  • "服务器JBoss的"
  • "服务器雄猫"
  • "数据库HSQL"
  • "数据库的Oracle"

要构建项目,您必须为服务器选择一个配置文件,为数据库选择一个配置文件.我想创建两个"元配置文件":

  • "dev"=>"server-tomcat","database-hsql"
  • "prod"=>"server-jboss","database-oracle"

第一个想法是通过属性激活子配置文件:

<profile>
   <id>database-oracle</id>
   <activation>
     <property>
       <name>prod</name>
     </property>
   </activation>
</profile>
Run Code Online (Sandbox Code Playgroud)

但是这样,我无法在元配置文件之间共享子配置文件.例如,我希望我的配置文件"database-oracle"由"pre-prod"和"prod"元配置文件激活.

注意:我的子配置文件只包含属性.它们用于过滤资源和子poms.这就是为什么我认为可以解决这种特殊情况的原因.

对我来说理想的情况是将它们外部化在外部属性文件中,但一次只有一个问题;)

profile maven-2

4
推荐指数
1
解决办法
918
查看次数