Linux locating/finding 文件的命令,其中文件名存储在变量中
Linux Command for locating/finding a file where the filename is stored in a variable
我知道这应该是一个简单的命令,但我无法找出错误。我认为它与语法有关
所以我有一个文件名 script.sh
存储在变量 var1
中。所以流程是这样的
#! /bin/bash
echo "Enter commit hash"
read commit
var1=`git diff-tree --no-commit-id --name-only -r "$commit"`
echo $var1
locate -br "$var1"
代码在 echo $var1
之前工作正常,但我无法 find/locate 文件所在的路径。
预期输出
script.sh
/c/training
假设 script.sh 出现在 /c/training 中。
以防万一,请务必使用 name-only
而不是 name-oly
这可以解释为什么 var1
是空的。
此外,请将建议 from shellcheck 用于您的 bash 脚本。
#! /bin/bash
echo "Enter commit hash"
read -r commit
var1=$(git diff-tree --no-commit-id --name-only -r "$commit")
echo "$var1"
locate -br "$var1"
在阅读了两者之间的区别后,尝试使用 find
命令而不是 locate
。
现在可以使用了。
我知道这应该是一个简单的命令,但我无法找出错误。我认为它与语法有关
所以我有一个文件名 script.sh
存储在变量 var1
中。所以流程是这样的
#! /bin/bash
echo "Enter commit hash"
read commit
var1=`git diff-tree --no-commit-id --name-only -r "$commit"`
echo $var1
locate -br "$var1"
代码在 echo $var1
之前工作正常,但我无法 find/locate 文件所在的路径。
预期输出
script.sh
/c/training
假设 script.sh 出现在 /c/training 中。
以防万一,请务必使用 name-only
而不是 name-oly
这可以解释为什么 var1
是空的。
此外,请将建议 from shellcheck 用于您的 bash 脚本。
#! /bin/bash
echo "Enter commit hash"
read -r commit
var1=$(git diff-tree --no-commit-id --name-only -r "$commit")
echo "$var1"
locate -br "$var1"
在阅读了两者之间的区别后,尝试使用 find
命令而不是 locate
。
现在可以使用了。