当前位置:  开发笔记 > 编程语言 > 正文

为什么我的脚本输出会说"mv:command not found",但是当我直接在shell上运行它时却没有?

如何解决《为什么我的脚本输出会说"mv:commandnotfound",但是当我直接在shell上运行它时却没有?》经验,为你挑选了1个好方法。

我写了一个小脚本,应该为我重命名目录中的一些文件.

#!/bin/bash

a=1
for i in *.jpg ; do
        new=$(printf "%04d.jpg" "$a")
        mv "$i" "$new"
        let a=a+1
done

#end of file

运行脚本后说:"mv:command not found"

当我直接在shell上运行代码时,怎么没有错误输出:

for i in *.jpg ; do new=$(printf "%04d.jpg" "$a") ; mv $i $new ; let a=a+1 ; done

Basile Stary.. 7

这可能是PATH设置的问题.该/bin 目录应该是你的里面$PATH

出于调试目的,请添加

echo PATH is $PATH

在脚本的开头,也许#!/bin/bash -vx 作为脚本的第一行.看到这个,execve(2),bash(1).

作为解决方法,替换

         mv "$i" "$new"

         /bin/mv "$i" "$new"

见mv(1)



1> Basile Stary..:

这可能是PATH设置的问题.该/bin 目录应该是你的里面$PATH

出于调试目的,请添加

echo PATH is $PATH

在脚本的开头,也许#!/bin/bash -vx 作为脚本的第一行.看到这个,execve(2),bash(1).

作为解决方法,替换

         mv "$i" "$new"

         /bin/mv "$i" "$new"

见mv(1)

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有