在shell中交换两个文件

时间:2011-02-13 15:12:18

标签: shell

我正在尝试使用代码通过临时文件切换两个文件的内容;

#!/bin/bash

...

mv $FILE1 $TEMP
mv $FILE2 $FILE1
mv $TEMP $FILE2

当我运行它时,它会返回每个行号

  

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

提前致谢。

2 个答案:

答案 0 :(得分:4)

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

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

/bin/mv ...

使用命令可以找出正确的路径:

which mv

或者,您可以尝试在脚本开头设置PATH,例如:

  

PATH = / bin中:在/ usr / bin中:/ sbin目录:/ usr / sbin目录

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

来查看默认PATH
echo $PATH

在你的shell中。

答案 1 :(得分:0)

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

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

在第一个命令调用之前放置这个,你应该设置来防止意外,这个随机的家伙已经设置了shell配置文件并且知道PATH应该是什么样子。

你可能希望增加这个,如果你需要来自其他目录的程序,例如

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