小编Joe*_*hew的帖子

在联机帮助页中的Unix命令名后,括号中的数字是什么意思?

例如:man(1),find(3),updatedb(2)?括号中的数字(英文"括号")是什么意思?

unix linux command-line manpage

470
推荐指数
6
解决办法
4万
查看次数

浮点导致Bash整数除法

我的服务器上有一个备份脚本,用于执行备份的cron作业,并向我发送备份文件的摘要,包括新备份文件的大小.作为脚本的一部分,我想将文件的最终大小除以(1024 ^ 3),以文件大小(以字节为单位)获取GB的文件大小.

由于bash没有浮点计算,我试图使用管道来获取结果,但是我对基本的例子感到困惑.

我试图将Pi的值设为一个比例,但是,

即使以下工作:

~ #bc -l
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
4/3
1.33333333333333333333
22/7
3.14285714285714285714
q
0
quit
Run Code Online (Sandbox Code Playgroud)

非交互式版本不起作用:

#echo $(( 22/7 )) | bc
3
Run Code Online (Sandbox Code Playgroud)

这有效:

#echo '22/7' | bc -l
3.14285714285714285714
Run Code Online (Sandbox Code Playgroud)

但我需要使用变量.所以它没有帮助,以下不起作用:

#a=22 ; b=7
#echo $(( a/b )) | bc -l
3
Run Code Online (Sandbox Code Playgroud)

我显然在Bash中使用变量的语法中缺少一些东西,并且可以使用一些关于我误解的"指针".

正如DigitalRoss所说,我可以使用以下内容:

#echo $a / $b | bc -l
3.14285714285714285714
Run Code Online (Sandbox Code Playgroud)

但是,我不能使用复杂的表达式,如:

#echo …
Run Code Online (Sandbox Code Playgroud)

bash bc

43
推荐指数
3
解决办法
7万
查看次数

如何使用grep/sed打印文件,不包括注释和空行?

我想打印出一个包含一系列评论的文件,例如:

    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
    #   SSL Engine Switch:
Run Code Online (Sandbox Code Playgroud)

实质上,该文件包含多个缩进级别,其中注释以#符号开头.

grep应该删除空行,以及在文本之前有哈希符号的行(暗示这些是注释).

我知道可以通过以下方式删除空行: grep -v '^$'

但是,如何删除带有前导空格的行,然后删除#符号,并仅打印出包含实际代码的行?我想用bash,grep和/或sed这样做.

regex perl awk grep sed

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

使用Android Studio在gradle中使用系统环境变量的正确方法

我正在使用Android Studio在Ubuntu 14.04系统上构建我的项目.

我在build.gradle文件中写了以下内容,以避免在我的git仓库中硬编码storeFile,storePassword,keyAlias和keyPassword:

signingConfigs {
 debug {

    storeFile file(System.getenv("KEYSTORE"))
    storePassword System.getenv("KEYSTORE_PASSWORD")
    keyAlias System.getenv("KEY_ALIAS")
    keyPassword System.getenv("KEY_PASSWORD")        
 }
Run Code Online (Sandbox Code Playgroud)

但是使用以下内容来清除同步错误: Error:(49, 0) Neither path nor baseDir may be null or empty string. path='null' basedir='./pathto/TMessagesProj'

我的.bashrc包含:source ~/.gradlerc而我的〜/ .gradlerc包含以下内容:

export KEYSTORE="/home/myname/keystore/mykey"
export KEYSTORE_PASSWORD='mypass'
export KEY_ALIAS='mykey'
export KEY_PASSWORD='keypass'
Run Code Online (Sandbox Code Playgroud)

我已经确认这些变量是由shell正确导入的.但是我不确定它为什么没有被Android Studio中的构建环境接收.

在gradle中使用环境变量的正确方法是什么?

android gradle android-studio android-gradle-plugin

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

如何使用ImageField模型调整使用Django上传的图像文件的大小?

调整通过Django表单上传的图像文件的最简单方法是ImageField什么?

django upload resize photo image

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

如何在反引号中正确使用perl变量名?

我需要在bash shell上执行以下代码:

mogrify -resize 800x600 *JPG
Run Code Online (Sandbox Code Playgroud)

由于宽度和高度是变量,我试过这个:

`mogrify -resize $widx$hit *JPG`
Run Code Online (Sandbox Code Playgroud)

但是在编译时,我得到了错误Global symbol "$widx" requires explicit package name at getattach.pl line 131.,这是因为编译器将$ widx视为新的未声明变量而不是$ wid和x.

我尝试在反引号中插入双引号,但代码的执行在没有任何消息的情况下停止.

在反引号中为shell执行插入变量名的正确方法是什么?它们可以连接吗?

variables perl backticks

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

迭代每个兄弟元素

上下文: 我正在构建一个表单和脚本,它将基于单击特定按钮执行ajax查询.有多个div块具有相同类的元素,并且基于div块,其中单击一个按钮,将处理不同的表单.

作为开始该程序的一部分,我开始使用一个看似简单的jQuery调用.

我正在尝试将onclick事件添加到特定类,然后尝试获取该元素的兄弟姐妹的CSS值.

错误: 我收到一条错误说明TypeError: this.siblings is undefined.

问题:使用jQuery迭代元素的兄弟姐妹的正确方法是什么?

我的代码:

HTML:

<a class="btn LiveStatsBtn"><span class="btn-label">Get Stats now</span> </a>
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

$(document).ready (function()
{ 
    $('.LiveStatsBtn').click(function(){
        this.siblings.each( function () {
            var tx=this.css();
            alert(tx);
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery class selector

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

使用Makefile交叉编译内核.如何抑制-Wunused-but-set-variable警告

我正在尝试使用Ubuntu为Android编译内核.

成功设置menuconfig后,使用以下选项进行编译:

make ARCH=arm CROSS_COMPILE="arm-bravo-" -i -j10
Run Code Online (Sandbox Code Playgroud)

它开始构建,但随后终止了很多这些错误:

error: variable '*something*' set but not used [-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors
Run Code Online (Sandbox Code Playgroud)

现在我明白这可以通过运行gcc with --disable-werroroption来解决.Probem是一个巨大的项目(内核),我对make和Makefile不够熟悉,知道我必须在哪里设置这个值.请帮助我理解并解决这个问题.

gcc makefile compilation

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

printf输出乱序

我写了以下内容:

#include <stdlib.h>
#include <stdio.h>
void ExecAsRoot (char* str);
int main ()
{
  printf ("Host real ip is:");
  ExecAsRoot("ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1  -d'/'");
  return 0;
 }

void ExecAsRoot (char* str) {
  system (str);
}
Run Code Online (Sandbox Code Playgroud)

我的预期输出是:

Host real ip is:7.17.11.29
Run Code Online (Sandbox Code Playgroud)

而实际输出是:

7.17.11.29
Host real ip is:
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

c printf function

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

C编程初学者 - 请解释这个错误

我刚刚从C开始,正在尝试Ritchie的书中的一些例子.我写了一个小程序来理解字符数组,但偶然发现了一些错误,并希望对我所理解的错误有所了解:

#include <stdio.h>
#define ARRAYSIZE 50
#include <string.h>

main () {
  int c,i;
  char letter[ARRAYSIZE];
  i=0;
  while ((c=getchar()) != EOF )
  {    
    letter[i]=c;
    i++;
  }
  letter[i]='\0';
  printf("You entered %d characters\n",i);
  printf("The word is ");

  printf("%s\n",letter);
  printf("The length of string is %d",strlen(letter));
  printf("Splitting the string into chars..\n");
  int j=0;
  for (j=0;j++;(j<=strlen(letter)))
    printf("The letter is %d\n",letter[j]);
}
Run Code Online (Sandbox Code Playgroud)

输出是:

$ ./a.out 
hello how are youYou entered 17 characters
The word is hello how are you
The length of string is 17Splitting the string …
Run Code Online (Sandbox Code Playgroud)

c arrays

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