bash - 用于定位/查找文件名存储在变量中的文件的 Linux 命令
问题描述
我知道这应该是简单的命令,但我无法找出错误。我认为它与语法有关
所以我有一个文件名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
,但我无法找到/定位文件存在的路径。
预期产出
script.sh
/c/training
假设 script.sh 存在于 /c/training 中。
解决方案
以防万一,请确保不要name-only
使用name-oly
这可以解释为什么var1
是空的。
此外,将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"
推荐阅读
- awk - 如何让 gawk 将我的数据转换为 csv 文件
- unity3d - 试图让我的相机坐在角色后面
- javascript - 点击时jQuery动态隐藏/显示div的内容
- android - Material Cardview - 没有被剪裁的孩子 < API 28
- r - 有什么方法可以在 tbl_regression 中显示 beta 估计的标准误差?
- image - 图像分割中的索引错误过多
- javascript - 反应是的架构
- reactjs - antd RadioButton 未以编程方式检查
- nosql - 跨分区查询会破坏无限的 CosmosDB 水平可伸缩性吗?
- c# - 如何为下面的节点编写 xpath?