小编Jah*_*hid的帖子

Bash条件语句

我意识到这可能是一个非常简单的问题,但我无法弄清楚为什么这不起作用.我正在尝试检查文件夹是否大于35GB,如果是,请删除所有超过3天的文件.

使用此代码:

#!/bin/bash
MAX=35000000000
if [ $(du -sb ~/MEGA | cut -f1) \> $MAX ] then
   find ~/MEGA/* -mtime +3 -exec rm -fr {} \;
fi
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

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

bash conditional

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

命令 blkid 不显示我的分区 UUID

我正在使用Ubuntu。命令blkidblk /dev/sda2LPIC-1 模块 104.3(安装和卸载)中。但这些命令没有向我显示预期的结果。blkid已安装,我也可以看到man blkid

你能指导我解决这个问题吗?

unix linux bash ubuntu blkid

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

如何处理文件使用awk

我想阅读一个文件,awk但我被困在第四个字段,它会在逗号后自动断开.

数据: - test.txt

"A","B","ls","This,is,the,test"
"k","O","mv","This,is,the,2nd test"
"C","J","cd","This,is,the,3rd test"

cat test.txt | awk -F , '{ OFS="|" ;print $2 $3 $4 }'
Run Code Online (Sandbox Code Playgroud)

产量

"B"|"ls"|"This
"O"|"mv"|"This
"J"|"cd"|"This
Run Code Online (Sandbox Code Playgroud)

但输出应该是这样的

"B"|"ls"|"This,is,the,test"
"O"|"mv"|"This,is,the,2nd test"
"J"|"cd"|"This,is,the,3rd test"
Run Code Online (Sandbox Code Playgroud)

任何的想法

shell awk

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

逃避sh脚本?

我的脚本中有以下行:

xrandr --newmode "$xx$y" $m
Run Code Online (Sandbox Code Playgroud)

where $x$y是整数,产生类似的输出1024x768.

不幸的是我的脚本正在解释$xas $xx- 如何阻止它并获得所需的行为?

bash sh

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

用文件中的行号替换字符串

我将所有退出代码替换为bash脚本的行号.

样本文件:

echo something
if conditional;then exit 1;fi
echo something else
if conditional;then exit 2;fi
Run Code Online (Sandbox Code Playgroud)

样本输出:

echo something
if conditional;then exit 2;fi
echo something else
if conditional;then exit 4;fi
Run Code Online (Sandbox Code Playgroud)

目前我这样做:

cat -n file |sed "s/\([[:blank:]]*[0-9]\+\)\(.*\)\(exit[[:blank:]]*\)\([0-9]\+\)\(.*\)/\1\2\3\1\5/" | sed "s/[[:blank:]]*[0-9]\+[[:blank:]]//"
Run Code Online (Sandbox Code Playgroud)

这项工作起作用但对于简单的任务来说似乎过于复杂.

有什么建议我怎么能有效地做到这一点?

bash awk sed

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

指向函数的指针不会工作

我正在尝试学习如何使用指针正常运行.我应该在函数strcmp内部创建一个指向函数的指针check,但程序会立即打开和关闭.据我所知,函数指针在我的代码上是正确的 returnType (*pointer)(parameters)); 那么出了什么问题?提前致谢.

void check(char *a,char *b,int (*cmp)(const char*,const char*))
{
    printf("Testing equality\n");
    if(!(*cmp)(a,b)) printf("equals");
    else printf("different");
}

int main(void)
{
    char s1[80] = "daniel" ,s2[80] = "daniel";
    int (*p)(const char*,const char*);
    p = strcmp();


    check(s1,s2,p);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c c++ pointers function-pointers

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

如何在bash中以二进制表示形式打印unix时间

我最近发现的信息是,在5月15日02:09:25,Unix时间将等于1010101010101010101010101010101二进制表示.

我想知道它是否是假的,所以我试图用二进制来获得当前的Unix时间.我想出了一个像这样的简单提示:

$ date +%s | xxd -b
Run Code Online (Sandbox Code Playgroud)

我得到了这样的结果:

0000000: 00110001 00110100 00110011 00110001 00110100 00110110  143146
0000006: 00110010 00110100 00110100 00110010 00001010           2442.
Run Code Online (Sandbox Code Playgroud)

总而言之,我得到了:

0011000100110100001100110011000100110100001101100011001000110100001101000011001000001010
Run Code Online (Sandbox Code Playgroud)

但它显示我预期的更多数字.所有其他变化也不令人满意,例如$ date "+%v %H:%M:%S" | xxd -b$ date | xxd -b.

我想,这对datexxd命令不会给我预期的结果.

你能告诉我怎样才能得到10101010101010101010101010101015月15日02:09:25 得到的二进制表示的当前时间?


更新:

好的,所以使用这个在线转换器(http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html)我能够得到一个合理的位数.如何使用bash实现同样的目标?

unix bash time

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

如何防止object = constructor(); 在c ++中赋值

这就是我想要做的:

class A{
    public:
    A(){/*need to initialize something here*/}
};

int main(){
    A a;      //OK
    a=A();    //not OK
    a=A(b);  //not OK
    ///Only A a; needs to be allowed.
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我需要初始化一些东西,同时防止使用复制构造函数初始化对象,并且还要阻止分配给现有对象.

注意:如果我能在没有的情况下做到这一点会很好>=C++11.

c++

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

bash:检查字符串是否以“ / *”开头

在bash脚本中,我需要检查字符串是否$HEADER以字符序列“ / *”开头。我正在尝试:

if [ $(echo $HEADER | cut -c 1-2) = '/*' ]
Run Code Online (Sandbox Code Playgroud)

它没有按预期工作。似乎将字符串与根目录的文件列表进行了比较。

如何保护从外壳解释的字符/和*?

用反斜杠保护字符也不起作用。

bash shell

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

在脚本shell中选择多个选项?

我想创建一个带有多选脚本的菜单.喜欢 :

1) 

2)

3)

4)

5)
Run Code Online (Sandbox Code Playgroud)

我可以在同一时间选择1,3和5.

bash shell sh

-3
推荐指数
1
解决办法
923
查看次数

Linux:非法选项读取-a

我找到了这个问题的答案......只是想为其他人提供一些信息,他们也遇到了这个问题......

在我的系统中,我遇到了这个问题,因为我使用了sh main.sh处理我的shell脚本而忽略了"Bash"和"Shell"之间的区别.

为了解决此问题,您可以尝试通过使用chmod +x和使用./来执行程序将模式更改为可执行文件.

祝好运!

linux bash shell

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

标签 统计

bash ×8

shell ×4

awk ×2

c++ ×2

linux ×2

sh ×2

unix ×2

blkid ×1

c ×1

conditional ×1

function-pointers ×1

pointers ×1

sed ×1

time ×1

ubuntu ×1