小编A.J*_*Jac的帖子

Intellij error = 2没有这样的文件或目录

安装intellij并添加sdk路径到项目结构,但当我尝试运行时我得到:

Error: Cannot run program "/home/$USER/java/jdk1.8.0_121/bin/java" 
(in directory"/home/$USER/.intelliJIdea2016.3/system/compile-server"):
error=2, No such file or directory
Run Code Online (Sandbox Code Playgroud)

两个文件(/home/$USER/java/jdk1.8.0_121/bin/java和/home/$USER/.intelliJIdea2016.3/system/compile-server)都存在.

我正在使用Ubuntu 16.10

java intellij-idea java-8

16
推荐指数
1
解决办法
1万
查看次数

Docker build-arg和copy

试图复制文件夹内容,它适用于我硬编码路径,如:

COPY ./my-folder /path/to/location
Run Code Online (Sandbox Code Playgroud)

但是需要能够改变这条路径,所以我尝试使用这样的构建参数:

COPY ${folderVariable} /path/to/location
Run Code Online (Sandbox Code Playgroud)

然后用

--build-arg folderVariable=./my-folder
Run Code Online (Sandbox Code Playgroud)

但是当我只想要"my-folder"的内容时,它会将所有内容复制到与"my-folder"相同的文件夹中

docker

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

列出并删除git分支而不进行克隆

for k in $(git branch -r --merged origin/master | cut -d" " -f 3); do
    echo $k
done
Run Code Online (Sandbox Code Playgroud)

我有一个git项目列表,我想清理旧的分支,我想要做的是列出并删除所有合并到master的分支.

有没有办法在不在本地克隆每个回购的情况下执行上述操作?

git branch

10
推荐指数
1
解决办法
4418
查看次数

Prometheus cAdvisor泊坞窗监控

我已经使用Prometheus,Grafana和cAdvisor设置了一个docker监控堆栈。使用此查询获取正在运行的容器时:

count_scalar(container_last_seen{name=~container1|container2})
Run Code Online (Sandbox Code Playgroud)

它会捡起所有的容器,一旦我启动了一个新容器,它就会立即被捡起。问题是,停止或卸下容器时,它不会拾取它,但仍将其显示为正在运行的容器。

容器停止后,将从cAdvisor / metrics端点将其删除。

查询有问题吗?

(这就是我用于堆栈的内容:https : //github.com/vegasbrianc/prometheus

monitoring docker prometheus cadvisor

5
推荐指数
1
解决办法
2392
查看次数

获取git log的前'x'个字符

我正在尝试仅获取git日志的前40个字符,我当前无法正常工作的命令是:

git log <branch_name> | cut -c 1-40 >> some_file
Run Code Online (Sandbox Code Playgroud)

这将输出整个日志。

Kinda是Linux新手,有什么建议吗?

编辑:

git log <branch_name> | head -n1 >> some_file
Run Code Online (Sandbox Code Playgroud)

每个@Someprogrammerdude建议的工作命令

git cut git-log

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

Java字符串设置默认值,如果为null

如果赋值给出nullPointerException,是否有一种有效的方法将字符串设置为某个默认值?

说即时初始化这样的字符串:

String myString= jsonElement.getAsJsonObject().get("myString").getAsString();
Run Code Online (Sandbox Code Playgroud)

如果它给nullPointer我需要给它一个默认值,我知道我可以用“ if”检查,但是那是唯一的方法吗?当我启动大约20个字符串时,这将意味着很多检查。

有什么办法可以做到:

String myString = jsonElement.getAsJsonObject().get("myString")
    .getAsString() || "defaultValue";
Run Code Online (Sandbox Code Playgroud)

java string nullpointerexception

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

Ansible 通知处理程序 with_items

我正在通过 ansible 为多个应用程序添加 JAVA_OPTS 作为环境变量,如果 JAVA_OPTS 更改,我想重新启动应用程序。

我现在拥有的是每个应用程序添加环境变量的任务和重启应用程序的通知,例如:

- name: Add variable1
  become: yes
  lineinfile: dest=/etc/environment regexp='^VARIABLE1=' line='VARIABLE1={{VARIABLE1}}'
  notify: restart application1

- name: restart application1
  become: yes
  command: restart application1
Run Code Online (Sandbox Code Playgroud)

因为我有很多应用程序这样做意味着有很多任务。我想要的是有一个任务来循环使用with_items. 我无法弄清楚如何让一个处理程序任务重新启动。是否可以将需要重新启动的应用程序传递给处理程序?就像是:

- name: add variables
  become: yes
  lineinfile: dest=/etc/environment regexp='^{{item.app_name}}='
  line='{{item.app_name}}={{ item.variable }}'
  notify: restart apps   #pass app_name to handler somehow
  with_items:
  - { variable: "FIRST", app_name: "APP1"}
  - { variable: "SECOND", app_name: "APP2"}
  - { variable: "THIRD", app_name: "APP3"}


- name: restart apps
  become: yes
  command: …
Run Code Online (Sandbox Code Playgroud)

ansible ansible-handlers

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

Bash数组声明和附加

我试图在bash脚本中声明并附加到一个数组,在搜索之后导致了这个代码.

list=()
list+="string"
Run Code Online (Sandbox Code Playgroud)

但当我回应这一点时,它什么也没有结果.我也试过像这样附加到数组

list[$[${#list[@]}+1]]="string"
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这不起作用,有人有什么建议吗?


编辑: 问题是列表附加到while循环内.

list=()

git ls-remote origin 'refs/heads/*' | while read sha ref; do
    list[${#list[@]}+1]="$ref"
done

declare -p list
Run Code Online (Sandbox Code Playgroud)

请参阅stackoverflow.com/q/16854280/1126841

arrays bash append declare

0
推荐指数
1
解决办法
4788
查看次数