bash - 如何在bash脚本中检查空字符串
问题描述
我正在尝试从 yml 文件中获取 url。因此,如果 $NODES 为空,则返回 ENV 变量 URL,否则来自 yml 文件的 URL 将返回。
在这里,如果不适合我。如果条件破坏。此外,它打印的本地节点变量值 null(当我这样做时echo "$NODES"
)
我的代码是这样的
SOURCE="$(dirname $0)/test.yml"
function query() {
cat "$SOURCE" | yq -r "$@"
}
function get_urls() {
local ENV="$1"
local NODES=$(query ".env[\"$ENV\"].urls")
if [ -z "$NODES" ];
then
echo $ENV_URL
else
query ".urls.$NODES[]" | paste -sd "," -
fi
}
在这里,如果我更改if [ -z "$NODES" ]
为if [ "$NODES" == "null"]
或if [ "$NODES" == null ]
然后脚本有效。
但是如何让它工作-z
呢?
解决方案
您缺少fi
结束标签。
例子:
if [ -z "$var" ]
then
echo "\$var is empty"
else
echo "\$var is NOT empty"
fi
这对我有用(它与“ABC”相呼应)。
ENV_URL="ABC"
NODES=""
if [ -z "$NODES" ]; then
echo $ENV_URL
else
echo "FOO"
fi
推荐阅读
- javascript - JavaScript 输入参数用空格分隔
- sql-server - 子查询返回超过 1 个值 - SQL 错误
- docker - 无法使用 Jenkins CloudFoundryPlugin 将 docker 映像推送到 Cloud Foundry
- google-chrome-extension - 如何制作可在网站上自动启用 Flash 的扩展程序?
- node.js - 从节点客户端发送事件到 Laravel Echo 服务器
- python - 根据包含映射的文件将 COL A 的值替换为 COL B 的值
- python - 绘制比例轴标签单位
- typescript - 如何在打字稿中计算 SMS 消息段?
- python - 使用索引数组中的索引元组索引多维数组 - NumPy / Python
- android - Google play 上的新格式 Bundle 应用怎么样?