我试图使用以下命令在我的 ubuntu VM 中打开 eclipse .. 一旦我这样做,我总是得到以下异常 -
ubuntu@username-dyn-vm1-48493:~$ eclipse
Eclipse:
An error has occurred. See the log file
/home/ubuntu/.eclipse/org.eclipse.platform_3.8_155965261/configuration/1381367113197.log.
Run Code Online (Sandbox Code Playgroud)
所以当我去那个特定的日志文件时,这就是我在日志中看到的 -
ubuntu@username-dyn-vm1-48493:~$ more /home/ubuntu/.eclipse/org.eclipse.platform_3.8_155965261/configuration/1381367113197.log
!SESSION 2013-10-10 01:05:13.088 -----------------------------------------------
eclipse.buildId=debbuild
java.version=1.7.0_25
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Command-line arguments: -os linux -ws gtk -arch x86_64
!ENTRY org.eclipse.osgi 4 0 2013-10-10 01:05:17.555
!MESSAGE Application error
!STACK 1
org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
at org.eclipse.swt.SWT.error(SWT.java:4387)
at org.eclipse.swt.widgets.Display.createDisplay(Display.java:914)
at org.eclipse.swt.widgets.Display.create(Display.java:900)
at org.eclipse.swt.graphics.Device.<init>(Device.java:156)
at org.eclipse.swt.widgets.Display.<init>(Display.java:498)
at org.eclipse.swt.widgets.Display.<init>(Display.java:489)
at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:716)
at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161) …Run Code Online (Sandbox Code Playgroud) 我正在尝试settings.xml在我的 Ubuntu 机器中查找文件。我不知道它在哪里,以及它在哪个目录中。
我试过用这个 -
ls -R | grep settings.xml
Run Code Online (Sandbox Code Playgroud)
但它没有向我显示它所在的完整路径.. 有没有我需要尝试的其他命令可以给我完整路径?
我有一个包含以下单行的文件:
{machineA=[0, 1024, 4, 1028], machineB=[1, 1025, 5, 1029]}
Run Code Online (Sandbox Code Playgroud)
其中我有两个数据集:
machineA=[0, 1024, 4, 1028]
machineB=[1, 1025, 5, 1029]
Run Code Online (Sandbox Code Playgroud)
现在,我需要读取上面的文件并以这样的方式拆分它,以便我可以像上面提到的那样提取每台机器的信息并将其存储在某种数据结构中。
目前,我很困惑我应该在 bash shell 脚本中使用哪种数据结构。如果我在 Java 中这样做,我会使用Map<String, Set<String>>但我不确定我应该在 shell 脚本中使用什么。
并将其存储在某种数据结构中后,我需要对其进行迭代并打印出结果。
我可以使用下面的 shell 脚本读取上面的文件:
#!/bin/bash
while read -r line; do
echo "$line"
done < data.txt
Run Code Online (Sandbox Code Playgroud)
但我不确定如何以这种方式拆分上述行数据,以便我能够提取每台机器信息,然后将其存储在某种数据结构中?
更新:-
下面是我按照 glenn 给出的建议得到的 shell 脚本 -
#!/bin/bash
while read -r line; do
echo "$line"
declare -A "$(
echo "x=("
grep -oP '(\w+)(?==)|(?<==\[).*?(?=\])' <<< "$line" |
tr -d , |
paste - - | …Run Code Online (Sandbox Code Playgroud) 当我执行命令以提供正在运行的进程的 pid 时,它给了我这样的 -
user@machineA:/$ ps -eo pid,command | grep exhibitor | grep java | grep -v grep
1615 java -jar ./exhibitor-1.2.3/lib/exhibitor-1.2.3-jar-with-dependencies.jar --fsconfigdir /opt/exhibitor/conf --hostname machineA
Run Code Online (Sandbox Code Playgroud)
现在我在上面的输出中看到了这条路径 -
./exhibitor-1.2.3/lib/exhibitor-1.2.3-jar-with-dependencies.jar
Run Code Online (Sandbox Code Playgroud)
现在我试图了解这个文件夹在哪里,./exhibitor-1.2.3/因为我无法找到。这个文件夹是否在同一台 ubuntu 机器上?有没有办法找出那个目录在哪里?
我正在运行 Ubuntu 12.04