小编Jen*_*ens的帖子

为什么0为真,但shell中的false为1?

false; echo $?
Run Code Online (Sandbox Code Playgroud)

以上将输出1,这与我所知道的所有其他编程语言相矛盾.

这有什么理由吗?

shell boolean

106
推荐指数
8
解决办法
6万
查看次数

如何重定向"time"命令的输出?

我试图重定向时间命令的输出,但我不能:

$time ls > filename
real    0m0.000s
user    0m0.000s
sys     0m0.000s
Run Code Online (Sandbox Code Playgroud)

在文件中,我可以看到ls命令的输出,而不是time.请解释一下,为什么我不能以及如何做到这一点.

unix shell time io-redirection

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

使用SQL视图的好理由是什么?

我正在阅读SQL Server 2008圣经,我正在阅读视图部分.但作者真的没有解释观点的目的.观点有什么用?我应该在我的网站上使用它们,它们有什么好处?

sql sql-server-2008

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

如何在bash中的if块中计算布尔变量?

我已经定义了以下变量:

myVar=true
Run Code Online (Sandbox Code Playgroud)

现在我想按照以下方式运行:

if [ myVar ]
then
    echo "true"
else
    echo "false"
fi
Run Code Online (Sandbox Code Playgroud)

上面的代码确实有效,但如果我尝试设置

myVar=false
Run Code Online (Sandbox Code Playgroud)

它仍将输出真实.可能是什么问题?

编辑:我知道我可以做一些表格

if [ "$myVar" = "true" ]; then ...
Run Code Online (Sandbox Code Playgroud)

但它有点尴尬.

谢谢

bash

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

检查shell脚本中的字符串是否既不是空也不是空格

我试图运行以下shell脚本,它应该检查字符串既不是空格也不是空.但是,我得到的所有3个字符串的输出都相同.我尝试过使用"[["语法,但无济于事.

这是我的代码:

str="Hello World"
str2=" "
str3=""

if [ ! -z "$str" -a "$str"!=" " ]; then
        echo "Str is not null or space"
fi

if [ ! -z "$str2" -a "$str2"!=" " ]; then
        echo "Str2 is not null or space"
fi

if [ ! -z "$str3" -a "$str3"!=" " ]; then
        echo "Str3 is not null or space"
fi
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

# ./checkCond.sh 
Str is not null or space
Str2 is not null or space
Run Code Online (Sandbox Code Playgroud)

bash shell freebsd

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

创建pdf时在markdown中的分页

我正在使用doxygen(1.8.6)创建一个降价文本文件的pdf.现在我想在markdown文件的特定阶段获取分页符,我使用了这个链接.

在他们提到的给定链接中,使用'>'表示换行符.但他们没有提到过分页符.是的我也可以使用'>'进行分页,但是我必须在markdown文本文件上写下这个符号5次或更多次,这使得markdown文件看起来很怪异.还有其他方法可以在markdown文件中获取分页符吗?

markdown doxygen

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

是否允许 C 编译器合并对 volatile 变量的顺序分配?

我有一个由硬件供应商报告的理论上的(非确定性的、难以测试的、实践中从未发生过的)硬件问题,其中对某些内存范围的双字写入可能会破坏任何未来的总线传输。

虽然我没有在 C 代码中明确写任何双字,但我担心编译器被允许(在当前或未来的实现中)将多个相邻的字分配合并为一个双字分配。

编译器不允许重新排序 volatile 的分配,但不清楚(对我而言)合并是否算作重新排序。我的直觉说是,但我之前已经被语言律师纠正过!

例子:

typedef struct
{
   volatile unsigned reg0;
   volatile unsigned reg1;
} Module;

volatile Module* module = (volatile Module*)0xFF000000u;

// two word stores, or one double-word store?
module->reg0 = 1;
module->reg1 = 2;
Run Code Online (Sandbox Code Playgroud)

(我会单独询问我的编译器供应商,但我很好奇标准的规范/社区解释是什么。)

c volatile compiler-optimization language-lawyer

64
推荐指数
5
解决办法
3802
查看次数

如何检查shell是否存在URL并且可能卷曲?

我正在寻找一个简单的shell(+ curl)检查,如果URL存在(返回200),它将被评估为true或false.

shell curl

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

接近零浮点值是否会导致被零除错误?

每个人都知道你不应该直接比较花车,而是使用公差:

float a,b;
float epsilon = 1e-6f;
bool equal = (fabs(a-b) < epsilon);
Run Code Online (Sandbox Code Playgroud)

我想知道在分割中使用它之前是否同样适用于将值比较为零.

float a, b;
if (a != 0.0f) b = 1/a; // oops?
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我还需要与epsilon进行比较吗?

c c++ floating-point divide-by-zero

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

如何在mercurial中找到我的工作版本

在一个mercurial repo中,我可以运行hg up {revision}来更改我的工作目录的修订版,但是我可以运行什么命令来发现我正在查看的修订版本?

mercurial

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