使用#!bin / bash文件更改目录和运行命令

时间:2011-08-24 00:38:22

标签: linux bash

我需要一个cron作业来更改目录并运行命令。

命令:

cd /var/www/domain.com/httpdocs
sake cron/test

我写了这个.sh文件(/var/here/and/there/test.sh):

#!/bin/bash
cd /var/www/domain.com/httpdocs
sake cron/test

我“chmoded”文件:

chmod 777 test.sh

当我运行它时:

sh /var/here/and/there/test.sh

输出是这样的:

[1] : No such file or directoryrons/test.sh: line 2: cd: /var/www/domain.com/httpdocs
[2] Can't find ./sapphire/cli-script.php or ./cli-script.php

(第二行来自清酒命令,只在正确的目录中执行时才成功)

THX

2 个答案:

答案 0 :(得分:2)

我认为你的\r命令末尾有一个迷路回车(cd)。 shell假定'\r'是目录名称的一部分。当它在错误消息中打印时,光标跳转到行的开头,消息的其余部分将覆盖那里的任何内容。

确保test.sh使用Unix风格的行结尾,而不是Windows风格的结尾。 (这可能是您用来创建它的任何编辑器的副作用。)

你是否有机会在Cygwin下运行?

dos2unix --help

(警告:与大多数过滤器不同,dos2unix将文件转换为。)

答案 1 :(得分:0)

目录/var/www/domain.com/httpdocs是否确实存在?您可以从该系统上的shell手动cd /var/www/domain.com/httpdocs而不会出错吗?