知道这个脚本有什么问题吗?我试图检查用户名是否是当前工作目录文件路径的一部分。我已经包含了同一件事的两个不同的实现,但它们都不起作用。
#!/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
或我迄今为止尝试的*
或引号的任何其他组合。
EDIT2:
终于明白了,不得不用这个:
if [[ $PWD == *$USER_NAME* ]]; then
echo "found"
else
echo "not found"
fi
答案 0 :(得分:1)
有两件事,您搜索的内容以及您搜索的内容。您在示例中将两者混合在一起。
if [[ "$USER_NAME" == *"$PWD"* ]]; then
^------swap----^
由PWD
内容命名的文件中的greps显然不会起作用,因为PWD
是一个目录,而不是一个文件:
grep "$USER_NAME" "$PWD"