Ubuntu for Windows 在运行脚本时给出 mv: 无法统计错误

Ubuntu for Windows 在运行脚本时给出 mv: 无法统计错误

我有一个使用 child_process 启动脚本的节点项目。该脚本循环遍历文件,将它们转换为图像,将每个文件的路径存储在数组中,并将数组返回给节点。然后我将其转换为字符串以读取它并执行 console.log 以查看结果。但是我收到错误:

I/O Error: Couldn't open file `'/mnt/c/localBarcodereader/pdf/calBarcodereader/pdf/[email protected]': No such file or directory.
mv: cannot stat '/mnt/c/localBarcodereader/pdf/calBarcodereader/pdf/[email protected]': No such file or directory`

在 Linux 服务器上运行时,我没有看到此错误。只有当我在 Windows 版 Ubuntu 中运行时才会看到。我在错误中注意到目录路径正在被复制:calBarcodereader/pdf

这是我的脚本:

#! /bin/bash
ndate=
日期 +%F_%T OIFS=$IFS; IFS=$'\n'; array=($(find /mnt/c/localBarcodereader/pdf -type f - size +0b)); IFS=$OIFS for item in "${array[@]}" do

file=$item
file="${file:9}"
fname="${file::-4}"
PATHTOIMG= "/mnt/c/localBarcodereader/pdfimage/${fname}_${ndate}"
if [ ${file: -4} == ".pdf" ]; then
# pdftoppm /mnt/c/localBarcodereader/pdf/[email protected] /mnt/c/localBarcodereader/pdfimage/test -png -f 1 -singlefile -rx 1500 -ry 1500
    pdftoppm /mnt/c/localBarcodereader/pdf/$file $PATHTOIMG -png -f 1 -singlefile -rx 1500 -ry 1500
    mv /mnt/c/localBarcodereader/pdf/$file /mnt/c/localBarcodereader/pdfarchive
    echo $PATHTOIMG
else
        mv /mnt/c/localBarcodereader/pdf/$file /mnt/c/localBarcodereader/pdfarchive
fi done

和我的节点代码:

const cp = require('child_process')

try {
const data = cp.execSync('/mnt/c/localBarcodereader/barcodeScript.sh');
if (data.toString() !== "") {
    console.log(data.toString())

答案1

当脚本在 Linux 服务器上运行时,路径名似乎要短得多。

作为一个快速修复,更改此行:

file="${file:9}"

更改为:

file="${file:30}"

本质上你是在改变变量file

/mnt/c/localBarcodereader/pdf/[email protected]

到:

calBarcodereader/pdf/[email protected]

当意图改变file为:

[email protected]

有更好的方法可以做到这一点,稍后我会尝试修改答案(并重新格式化你的问题)。

相关内容