我知道有一种方法可以做到这一点,但互联网搜索结果总是很糟糕 -
我想要做:
if [[ ! -z "$var" ]]; then
# ....
fi
Run Code Online (Sandbox Code Playgroud)
但我一时想不起来了,我想是这样的:
if [[ -p "$var" ]]; then
# ....
fi
Run Code Online (Sandbox Code Playgroud)
或者像这样:
if [[ -n "$var" ]]; then
# ....
fi
Run Code Online (Sandbox Code Playgroud)
有人可以提供一个会出现在搜索引擎中的好答案吗,希望如果我将标题编辑为最佳,它也会有所帮助。
您需要-n测试(“如果给定字符串的长度非零,则为 true”),这与测试-z(“如果给定字符串的长度为零,则为 true”)相反。
测试-p是完全不同的(“如果给定文件存在并且是命名管道,则为 true”)。
您可以在交互式bashshell 中输入以下内容来获取此信息
help test
Run Code Online (Sandbox Code Playgroud)
这将为您提供内置test实用程序的文档(这[是; see 的另一个变体help [,并且[[使用与; see 相同的测试help [[)。您还可以查看bash系统手册 ( man bash),该手册记录在标题为“条件表达式”的部分中。
因此,您的代码将是以下之一
if [[ -n $var ]]; then ...; fi
Run Code Online (Sandbox Code Playgroud)
if [ -n "$var" ]; then ...; fi
Run Code Online (Sandbox Code Playgroud)
if test -n "$var"; then ...; fi
Run Code Online (Sandbox Code Playgroud)
话虽如此,我认为没有什么问题
if [[ ! -z $var ]]; then ...; fi
Run Code Online (Sandbox Code Playgroud)
例如,如果您想要确保该值是空的,并且想要在该值不为空时输出错误消息。然后,代码将记录您的意图:“如果这不是空的,则有问题”。这是一个品味问题。
| 归档时间: |
|
| 查看次数: |
4052 次 |
| 最近记录: |