我正在尝试使用代码通过临时文件切换两个文件的内容;
#!/bin/bash
...
mv $FILE1 $TEMP
mv $FILE2 $FILE1
mv $TEMP $FILE2
当我运行它时,它会返回每个行号
swap.sh:第18行:mv:未找到命令
提前致谢。
答案 0 :(得分:4)
可能您正在使用shell参数取消设置PATH变量。
尝试添加命令的完整路径,例如
/bin/mv ...
使用命令可以找出正确的路径:
which mv
或者,您可以尝试在脚本开头设置PATH,例如:
PATH = / bin中:在/ usr / bin中:/ sbin目录:/ usr / sbin目录
这取决于系统。您可以通过运行
来查看默认PATHecho $PATH
在你的shell中。
答案 1 :(得分:0)
使用正确的PATH初始化脚本的POSIXy方法是
PATH=$(/usr/bin/getconf PATH)
在第一个命令调用之前放置这个,你应该设置和来防止意外,这个随机的家伙已经设置了shell配置文件并且知道PATH应该是什么样子。
你可能希望增加这个,如果你需要来自其他目录的程序,例如
PATH=$(/usr/bin/getconf PATH):/usr/local/bin