zsh - 检查是否设置了“以x的值命名的参数”
问题描述
我目前正在使用这样的一段代码:
if (( $( eval "echo \${+$foo}" ) )); then
./my-prog
fi
有没有更优雅或更简洁的方式来表达这一点?原来我试过
if (( ${+${(P)foo}} )); then
./my-prog
fi
但这引发了“错误替换”错误。
解决方案
还有-v
运算符,它排除了间接参数扩展的需要:
if [[ -v $foo ]]; then
./my-prog
fi
这man zshmisc
在 条件表达式 部分中记录。
推荐阅读
- sql - CAST TO DATE 转换为 JSON_TABLE 定义 - Oracle
- android - 如何在 smali 中复制文件
- java - 如何识别列表中的重复记录?
- pythonanywhere - 在 pythonanywhere 上部署 Running Django 应用
- php - 在 PHP 中显示来自 SQL-Server 的 (UTF-8) 数据的问题
- javascript - 我正在尝试在 HTML 中创建一个简单的多项选择程序,但我无法在最后显示他们的分数
- php - 在 php 中使用 curl ftp 将文件传输到服务器时,它会以 .tmp 扩展名和随机名称保存
- symfony - Api 平台关系
- sorting - 为什么选择排序算法的时间复杂度是O(n2)
- sql - 在 SQL 中选择非重复/不同的值