bash - 关于 bash 文件的混淆存在测试操作符

标签 bash

以下不返回任何内容:

which asdf

那么为什么这里会触发 if 语句呢?

x=$(which asdf)
if [ -f $x ]; then echo "exists"; fi

最佳答案

你没有引用 $x,所以你的测试变成了 [ -f ],这是真的,因为 -f 是一个非- 空字符串。

if [ -f "$x" ]; then

关于bash - 关于 bash 文件的混淆存在测试操作符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57168341/

相关文章:

linux - 我如何从 awk 中的字符串中选择第 s 个值?

bash - 在 ksh 中比较字符串是否相等

git - 在 Git 中,如何在不手动指定文件的情况下暂存刚刚差异化的文件?

bash - 如何在 AWK 中打印 CSV 中的一系列列?

linux - 创建按状态排序的流程列表

Bash:当前目录中匹配正则表达式的文件的总大小

linux - Bash 脚本 - "tar czf ..."命令忽略参数

bash - 如何将bash变量作为jq的键传递?

bash - shell脚本中自动应答ssh-copy-id

regex - 使用awk获取子字符串