如何使用 readlink 输出测试变量中包含的字符串?

Abr*_*eed 0 unix bash

用户输入文件名 --> $1。我将其与 path2 进行比较。如果两个字符串匹配,则回显“相同文件”。我已经包含了下面的代码。

path="$(readlink -f $1)"
path2="path/to/$USER/file"

if [[ $path == $path2 ]] ; then
    echo "Same file"
Run Code Online (Sandbox Code Playgroud)

但是,当我使用与 path2 相同的输入文件运行它时,它仍然显示不匹配,因为它将path/to/username/filepath/to/username\file 进行比较。如何让path2以与path相同的格式输出?即 path2 应该输出为path/to/username/file而不是path/to/username\file

谢谢!

Léa*_*ris 5

使用-ef它也适用于 ksh93、zsh、bash ......而不是readlink特定于GNU coreutils 的:

if [ "$1" -ef "path/to/$USER/file" ] ; then
    echo "Same file"
Run Code Online (Sandbox Code Playgroud)

help test

FILE1 -ef FILE2 如果file1是到 的硬链接,则为真file2