string - GIT Bash说找不到文件
问题描述
我正在尝试通过 Windows 上的 Git Bash 控制台使用 Meshlabserver 运行 .mlx 脚本。我在一个文件夹中有 .mlx 脚本,并且我有一个名为的文件script_list.txt
,其中包含所有脚本的列表,如下所示:
C:/My_Work_Files/Batch_resize_surfaces_test/resize_meshlab_5.mlx
C:/My_Work_Files/Batch_resize_surfaces_test/resize_meshlab_52.mlx
C:/My_Work_Files/Batch_resize_surfaces_test/resize_meshlab_54.mlx
C:/My_Work_Files/Batch_resize_surfaces_test/resize_meshlab_56.mlx
...
对于我想做的事情,我需要从列表中选择一个随机的 .mlx 脚本,然后在从 Bash 调用它的同时将其传递给 Meshlabserver。为此,我有以下代码:
mapfile -t myArray < "C:\My_Work_Files\Batch_resize_surfaces_test\script_list.txt"
num=$(shuf -i 1-13 -n 1)
Script=${myArray[$num]}
这个想法是这段代码将在一个循环中,并且每次$num
都会不同,这将从列表中获取一个随机的 .mlx 脚本。
我使用以下代码调用 Meshlabserver:
"C:\Program Files\VCG\MeshLab\meshlabserver.exe" -i "$file" -s $Script -o "${file%.*}_deci.ply" -m vn
但是,它告诉我$Script
不存在。当我手动分配 .mlx 文件时$Script
:
Script="C:/My_Work_Files/Batch_resize_surfaces_test/resize_meshlab_5.mlx"
Meshlabserver 找到该文件并且它运行没有任何问题。我一生都无法理解从 .txt 文件中获取文件名及其路径并将其传递给变量以及手动将相同的字符串传递给变量之间的区别。当我在控制台中回显这两个字符串时,它们看起来相同。这显然与 Bash 有关,但我无法弄清楚。
编辑:为了澄清,完整的代码是这样的:
mapfile -t myArray < "C:\My_Work_Files\Batch_resize_surfaces_test\script_list.txt"
num=$(shuf -i 1-13 -n 1)
Script=${myArray[$num]}
"C:\Program Files\VCG\MeshLab\meshlabserver.exe" -i "$file" -s $Script -o "${file%.*}_deci.ply" -m vn
解决方案
推荐阅读
- python - tensorflow pb 文件推理需要超过 3 秒的图像
- elixir - 自不推荐使用 Ecto.DateTime 以来,如何创建新的 DateTime?
- python-3.x - Insert a value into a DynamoDB table with integer attributes using Boto
- javafx - 表格视图单元格的类型安全样式表,具体取决于条件
- amazon-web-services - Glue 作业的自定义 Cloudwatch 日志组
- python - FileNotFoundError 与 matplotlib 和 tkinter
- ios - iOS 9 上的 UITableViewHeaderFooterView 宽度问题
- javascript - 获取:语法错误:缺少:在条件表达式中
- c# - 尝试删除 Azure Functions 中的 blob,但缺少 DeleteIfExists 方法
- c - 带/不带选项的 getopt 用法