在shell中交换两个文件

在shell中交换两个文件,shell,Shell,我试图使用代码通过临时文件切换两个文件的内容 #!/bin/bash ... mv $FILE1 $TEMP mv $FILE2 $FILE1 mv $TEMP $FILE2 当我运行它时,它返回每个行号 swap.sh:未找到第18行:mv:命令 提前感谢。您可能正在使用shell参数设置PATH变量 例如,尝试向命令添加完整路径 /bin/mv ... 使用命令,您可以找出正确的路径: which mv 或者,您可以尝试在脚本开头设置路径,例如: 路径=/bin:/usr/bin:

我试图使用代码通过临时文件切换两个文件的内容

#!/bin/bash

...

mv $FILE1 $TEMP
mv $FILE2 $FILE1
mv $TEMP $FILE2
当我运行它时,它返回每个行号

swap.sh:未找到第18行:mv:命令


提前感谢。

您可能正在使用shell参数设置PATH变量

例如,尝试向命令添加完整路径

/bin/mv ...
使用命令,您可以找出正确的路径:

which mv
或者,您可以尝试在脚本开头设置路径,例如:

路径=/bin:/usr/bin:/sbin:/usr/sbin

这取决于系统。您可以通过运行

echo $PATH

在shell中。

您可能正在使用shell参数取消设置路径变量

例如,尝试向命令添加完整路径

/bin/mv ...
使用命令,您可以找出正确的路径:

which mv
或者,您可以尝试在脚本开头设置路径,例如:

路径=/bin:/usr/bin:/sbin:/usr/sbin

这取决于系统。您可以通过运行

echo $PATH

在shell中。

使用正确路径初始化脚本的POSIXy方法是

PATH=$(/usr/bin/getconf PATH)
把这个放在第一次命令调用之前,你应该被设置为,以防被一些随机的家伙意外地发现,他已经用自己的想法设置了shell概要文件,知道路径应该是什么样子

如果您需要其他目录中的程序,例如

PATH=$(/usr/bin/getconf PATH):/usr/local/bin

用正确的路径初始化脚本的POSIXy方法是

PATH=$(/usr/bin/getconf PATH)
把这个放在第一次命令调用之前,你应该被设置为,以防被一些随机的家伙意外地发现,他已经用自己的想法设置了shell概要文件,知道路径应该是什么样子

如果您需要其他目录中的程序,例如

PATH=$(/usr/bin/getconf PATH):/usr/local/bin

使用
/usr/bin/getconf PATH
可以更好地研究系统的“默认”路径。其他一切都可能或多或少地给您一个目录的随机列表:-)最好使用
/usr/bin/getconf PATH
来研究系统的“默认”路径。其他所有内容都可能或多或少地为您提供一个随机目录列表:-)您不是从
cron
运行此脚本,是吗?Cron没有设置任何路径,因此您必须在脚本中设置它,最好使用
PATH=$(/usr/bin/getconf PATH)
您不是从
Cron
运行此脚本,是吗?Cron没有设置任何路径,因此您必须在脚本中设置它,最好使用
PATH=$(/usr/bin/getconf PATH)