相关疑难解决方法(0)

-z在Bash中意味着什么?

我正在看下面的代码:

if [ -z $2 ]; then
        echo "usage: ...
Run Code Online (Sandbox Code Playgroud)

(3个点是不相关的使用细节.)
也许我在谷歌搜索错误,但我找不到该-z选项的解释.

bash

253
推荐指数
4
解决办法
18万
查看次数

在Bash中,如何在任何命令或别名中添加"你确定[Y/n]"吗?

在这个特殊情况下,我想在Bash中添加一个确认

Are you sure? [Y/n]

对于Mercurial来说hg push ssh://username@www.example.com//somepath/morepath,它实际上是一个别名.是否有可以添加到别名的标准命令来实现它?

原因是hg push并且hg out听起来很相似,有时当我想要时hgoutrepo,我可能会意外地输入hgpushrepo(两者都是别名).

更新:如果它可以像是带有另一个命令的内置命令,例如:confirm && hg push ssh://...那个很棒......只是一个可以请求a yes或者no继续其余命令的命令yes.

bash alias confirmation

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

Unix布尔运算符(&&, - a,||, - o)

是否有人可以解释之间的区别&&,||,-a,和-oUnix的运营商?

这两种类型的使用有哪些限制?

是否只是在条件中使用标志时应该使用&&||运算符?

如:

[ "$1" = "yes" ] && [ -r $2.txt ]
Run Code Online (Sandbox Code Playgroud)

与:

[ "$1" = "yes" -a $2 -lt 3 ]
Run Code Online (Sandbox Code Playgroud)

unix bash shell boolean operators

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

在bash脚本中遇到"一元运算符期望"

在我的bash脚本中,我有一个函数为后面的main函数的条件返回0或1(true或false).

function1 () { 
    if [[ "${1}" =~ "^ ...some regexp... $" ]] ; then
        return 1
    else
        return 0
    fi 
}
Run Code Online (Sandbox Code Playgroud)

然后在我的主要功能:

main () { 
    for arg in ${@} ; do
        if [ function1 ${arg} ] ; then
            ...
        elif [ ... ] ; then
            ...
        fi
    done
}
Run Code Online (Sandbox Code Playgroud)

然而,当我运行这个脚本时它总是给我一个错误信息"[:function1:一元运算符预期"

有人可以帮我吗?

bash if-statement unary-operator

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

预计Bash一元运算符

好的,所以在我的脚本中(这是我第一次使用bash)我遇到了2个一元运算符预期的错误.代码本身实际上工作正常,但是它在运行时向我展示了这些错误.

[: !=: unary operator expected
Run Code Online (Sandbox Code Playgroud)

为线

if [ ${netmask[1]} != "" ]; do
Run Code Online (Sandbox Code Playgroud)

所以对于第一个错误,当它抛出${netmask[1]}""(null),我已经尝试了多种想法,但仍无法得到它没有在这个过程中返回的错误工作

任何帮助,将不胜感激!

编辑:通过添加引号(grrr)解决

if [ "${netmask[1]}" != "" ]; do
Run Code Online (Sandbox Code Playgroud)

bash

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

一元运算符预计在Bash

我已经看到有关同一问题的问题,但所有问题都与字符串有关.整数怎么样,为什么我得到"一元运算符预期"错误?

 if [ $(date +%k%M) -ge ${!BLOCK1FRAN} ] ; then whatever ; fi
Run Code Online (Sandbox Code Playgroud)

bash integer operator-keyword

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

[:-gt:一元运算符预期

我不写很多Bash,所以我有点难过如何解决这个问题.我需要检查命令返回的值是否大于x.当它运行虽然我得到[: -gt: unary operator expected了我无法修复.

这是我的剧本,

#!/bin/sh
ERROR=0
PHPCPDLevel=100

# PHPCPD
echo "PHP CopyPaste Detection (Limit is at least ${PHPCPDLevel}%"
PHPCPD="phpcpd ."
if [[ `echo $PHPCPD | grep "%" | cut -d'.' -f1` -gt "$PHPCPDLevel" ]]
  then
    echo $PHPCPD
    ERROR=1
  else
    echo "... -> Only `echo $PHPCPD | grep "%" | cut -d'.' -f1`%"
fi

echo "Finished!"
exit $ERROR
Run Code Online (Sandbox Code Playgroud)

更新: 我想我已经做到了:

#!/bin/sh
ERROR=0
PHPCPDLevel=25

# PHPCPD
echo "PHP CopyPaste Detection (Limit is at most ${PHPCPDLevel}%)"
PHPCPD="phpcpd …
Run Code Online (Sandbox Code Playgroud)

bash

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