小编Ini*_*ian的帖子

Linux grep返回代码

我很难理解以下为什么返回1的代码.

echo 'Total' | grep -c No
0
Run Code Online (Sandbox Code Playgroud)

因此"总计"中不存在"否".但是后来查看它的返回码我认为它是1.

echo $?
1
Run Code Online (Sandbox Code Playgroud)

为什么返回代码显示为1?有办法解决这个问题吗?

linux bash shell grep

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

shell 脚本中出现意外的操作员错误

这是我正在运行的 shell 代码:

#!bin/bash

while true
do
        req=$(curl http://localhost/devcalls/camerarequest.php)

        if [ "$req" == "1" ]
        then
                sudo bash /home/ckoy-admin/HAS_system/camera/cam.sh
        fi
done
Run Code Online (Sandbox Code Playgroud)

这是我执行时遇到的错误:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100     1  100     1    0     0     56      0 --:--:-- --:--:-- --:--:--    58
CAM.sh: 7: [: 1: unexpected operator
Run Code Online (Sandbox Code Playgroud)

请让我知道这里出了什么问题。

bash shell

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

切换用户而不创建中间过程

我可以使用sudosu以另一个用户身份执行命令.通过组合exec,我能够用sudo或替换当前进程su,以及运行命令的子进程.但我想用另一个用户运行的命令替换当前进程.我怎么做?

使用sleep inf命令和someguy用户进行测试:

exec su someguy -c 'sleep inf'
Run Code Online (Sandbox Code Playgroud)

这给了我pstree:

bash???su???sleep
Run Code Online (Sandbox Code Playgroud)

exec sudo -u someguy sleep inf
Run Code Online (Sandbox Code Playgroud)

bash???sudo???sleep
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,我只想要sleep命令,bash作为父命令.

我希望我能有什么的一些序列做到这一点由C setuid()exec().

linux bash shell sudo exec

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

尝试使用Linux中的find命令匹配文件名时忽略大小写

现在,我所知道的是:

find / -name string.*
Run Code Online (Sandbox Code Playgroud)

区分大小写,它将找不到名为的文件:

1string.x
STRing.x
string1.x
Run Code Online (Sandbox Code Playgroud)

我如何搜索以便在搜索中将所有上述内容返回到不区分大小写的匹配?

linux search case-insensitive

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

jq 将输出合并到由空格分隔的一行上

我正在尝试jq在 Windows 机器上运行查询,它从单独一行的输出中提取值

jq -r .Accounts[].Id
Run Code Online (Sandbox Code Playgroud)

输出

204359864429
224271824096
282276286062
210394168456
090161402717
Run Code Online (Sandbox Code Playgroud)

如何运行jq查询,以便将输出组合在由空格分隔的单行上

这就是我需要的-

204359864429 224271824096 282276286062 210394168456 090161402717
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。

jq

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

从Bash中删除字符串中的所有特殊字符

我有很多小写的文字,唯一的问题是,有很多特殊字符,我想用数字删除它.

下一个命令它不够强大:

tr -cd '[alpha]\n '
Run Code Online (Sandbox Code Playgroud)

如果是éćščž和其他一些人,则返回"?" 但我想删除所有这些.有更强的命令吗?

我使用linux mint 4.3.8(1)-release

bash shell tr linux-mint

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

如何在gtk3中为窗口小部件设置特定的css类?(C)

我正在尝试gtk3中的CSS,我不明白如何使用特定的类.

C代码:

provider = gtk_css_provider_new();
display = gdk_display_get_default();
screen = gdk_display_get_default_screen (display);
gtk_style_context_add_provider_for_screen (screen, GTK_STYLE_PROVIDER(provider), GTK_STYLE_PROVIDER_PRIORITY_USER);
gtk_css_provider_load_from_path(GTK_CSS_PROVIDER(provider),"styles.css",NULL);

enter_button = gtk_button_new_with_label("Print");
g_signal_connect(G_OBJECT(enter_button), "clicked", G_CALLBACK(print_entry_dialog),&t_data);
gtk_box_pack_start(GTK_BOX(hbox3), enter_button, TRUE, TRUE, 0);
Run Code Online (Sandbox Code Playgroud)

Css(styles.css):

GtkButton{
  background: #669999;
  text-shadow: 1px 1px 5px black;
  box-shadow: 0px 0px 5px black;
  border: 1px solid black;
}
Run Code Online (Sandbox Code Playgroud)

以这种方式它的工作原理: 在此输入图像描述

但我想设置一个'enter_button'类,它只为'enter_button'设置属性,而不是为GtkButton名下的所有小部件设置属性.

我读到了gtk_style_context_add_class()func,但我不知道它如何与'styles.css'文件一起使用.我该做什么?

css gtk3

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

打印文件中没有重复项的行并保留排序顺序 linux

我有以下文件:

2
1
4
3
2
1
Run Code Online (Sandbox Code Playgroud)

我想要这样的输出(没有任何重复项并保留顺序的唯一行):

4
3
Run Code Online (Sandbox Code Playgroud)

我尝试过sort file.txt | uniq -u它有效,但输出已排序:

3
4
Run Code Online (Sandbox Code Playgroud)

我尝试awk '!x[$0]++' file.txt保持顺序,但它会打印一次所有值:

2
1
4
3
Run Code Online (Sandbox Code Playgroud)

awk uniq

11
推荐指数
3
解决办法
280
查看次数

使用xmllint获取pom.xml版本

我有一个pom.xml这样的

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.qualtrics.sujitv</groupId>
  <artifactId>maven-test</artifactId>
  <packaging>jar</packaging>
  <version>1.2.3.4</version>
  <name>Test app</name>
  <url>http://maven.apache.org</url>

</project>
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用xmllint获取版本,但是当我运行时

xmllint --xpath 'string(project/version)' ./pom.xml
Run Code Online (Sandbox Code Playgroud)

它什么也没输出

bash xpath xmllint

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

在使用 sudo bash 运行的脚本中运行没有 sudo 的特定命令

我有一个bash正在运行的脚本sudosudo NewScript

在脚本中,我有一个git不想运行的命令sudo。目前,由于整个脚本是用sudo这个命令运行sudo的,所以我想抑制它。

这样的事情是可能的还是我需要在没有命令的情况下运行脚本sudosudo为除git命令之外的脚本中的每个命令添加?

git bash shell ubuntu sudo

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

标签 统计

bash ×6

shell ×5

linux ×3

sudo ×2

awk ×1

case-insensitive ×1

css ×1

exec ×1

git ×1

grep ×1

gtk3 ×1

jq ×1

linux-mint ×1

search ×1

tr ×1

ubuntu ×1

uniq ×1

xmllint ×1

xpath ×1