我试图通过使用代码的临时文件切换两个文件的内容;交换shell中的两个文件
#!/bin/bash
...
mv $FILE1 $TEMP
mv $FILE2 $FILE1
mv $TEMP $FILE2
当我运行它,它返回每个行号
swap.sh:第18行:MV:找不到命令提前
感谢。
我试图通过使用代码的临时文件切换两个文件的内容;交换shell中的两个文件
#!/bin/bash
...
mv $FILE1 $TEMP
mv $FILE2 $FILE1
mv $TEMP $FILE2
当我运行它,它返回每个行号
swap.sh:第18行:MV:找不到命令提前
感谢。
也许你正在使用shell参数取消设置PATH变量。
尝试增加完整路径命令,例如
/bin/mv ...
使用命令,你可以弄清楚什么是正确的路径:
which mv
或者你可以尝试在脚本的开头设置PATH ,例如:
PATH =/bin:/ usr/bin:/ sbin:/ usr/sbin
这是依赖于系统的。您可以通过在您的shell中运行
echo $PATH
来查看默认路径。
用/ usr/bin/getconf可以更好地调查系统的默认PATH PATH`。其他一切可能会给你一个或多或少的随机目录列表:-) – Jens 2012-05-16 15:05:24
的POSIXy方式与一条合适的路径来初始化脚本是
PATH=$(/usr/bin/getconf PATH)
通过一些随机的家伙谁拥有安装外壳的第一个命令invokation之前将这个,你应该设置和保护,惊喜用他的PATH应该看起来像什么的想法的配置文件。
如果您需要其他目录中的程序,例如,您可能需要扩充。
PATH=$(/usr/bin/getconf PATH):/usr/local/bin
你没有从`cron`运行这个脚本,对吗? Cron没有设置任何PATH,所以你必须在脚本中设置它,最好使用`PATH = $(/ usr/bin/getconf PATH)` – Jens 2012-05-16 15:09:34