首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KSH条件查询

KSH条件查询
EN

Stack Overflow用户
提问于 2013-06-08 01:46:03
回答 1查看 214关注 0票数 0

我在ksh脚本中有以下代码片段,我正在尝试理解这些代码...

代码语言:javascript
复制
if [ -f ${FILELIST} -a -s ${FILELIST} ]; then
......
fi

第一部分是检查文件是否以用来代替变量FILELIST的名称存在。第二部分是让我困惑的地方。我相信-a正在检查符号链接,而-s正在检查文件大小是否大于零,但没有" and“或" or”子句将这两个项目链接在一起。这是在尝试检查文件是否存在,还是符号链接是否存在大小大于零的文件?

EN

回答 1

Stack Overflow用户

发布于 2013-06-08 02:03:06

-a是连接这两个查询的"and“。但是,它的使用已被弃用(至少在POSIX标准中是如此),可以替换为:

代码语言:javascript
复制
if [ -f "$FILELIST" ] && [ -s "$FILELIST" ]; then

ksh中( -a也可能被混淆地用作-e的过时同义词),您还可以使用

代码语言:javascript
复制
if [[ -f "$FILELIST" && -s "$FILELIST" ]]; then

test命令(例如,[)不能将&&识别为替代-a的运算符,这就是为什么推荐的POSIX兼容的替代方案是分隔由外壳&&运算符连接的test命令。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16990057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档