【发布时间】:2016-03-21 22:22:47
【问题描述】:
知道这个脚本有什么问题吗?我正在尝试检查用户名是否是当前工作目录文件路径的一部分。我已经包含了同一事物的两个不同实现,但它们都不起作用。
#!/bin/bash
USER_NAME=$(whoami)
if [[ "$USER_NAME" == *"$PWD"* ]]; then
echo $PWD
else
echo "not found"
fi
case "$USER_NAME" in
*$PWD*) echo $PWD ;;
esac
另外,这也不起作用:
grep "$USER_NAME" "$PWD"
但是,这是可行的:
echo "$PWD" | grep "$USER_NAME"
知道这里发生了什么吗?
编辑:这也不起作用:
if [[ *"$PWD"* == "$USER_NAME" ]]; then
echo "found"
else
echo "not found"
fi
甚至这个:
if [[ $PWD == $USER_NAME ]]; then
echo "found"
else
echo "not found"
fi
或* 的任何其他组合或到目前为止我尝试过的引号。
编辑2:
终于明白了,不得不用这个:
if [[ $PWD == *$USER_NAME* ]]; then
echo "found"
else
echo "not found"
fi
【问题讨论】:
-
我在 SO 和 SE 上提到了许多不同的问题来解决这个问题,这是我得到示例的地方,但没有找到关于为什么这些示例不起作用的明确答案。
-
只需检查一个重复项,然后将其与您的代码进行比较...草率和编程不能很好地结合在一起。
-
@CharlesDuffy:你也没有看到吗?哈哈。我会发布答案...
-
哦。向后。 掌心.
-
我已经尝试过交换参数,但它仍然不起作用。还尝试了引号和 * 的各种组合,它们似乎都没有导致 PWD 路径中的用户名匹配
标签: bash