linux - 在 sh/ksh 文件中出现奇怪的错误

标签 linux shell unix jar ksh

我有以下 sh 脚本-

YUI_PATH=www/code/build/b2b_dev/yuicompressor-2.3.5.jar
DIR=www/code/build/b2b_dev/build/web

cd $DIR
echo $DIR

for i in `find . -name *.js -o -name *.css`
do
   echo $i
   ${WAS_DIR}/java/jre/bin/java -jar $YUI_PATH -o $i $i
done

echo "All js and css files recursively within $dir have been compressed!"

当我运行这个文件时,我得到了这个错误 - /www/code/build/b2b_dev/yuicompressor-2.3.5.jar is not found。

但是我把这个 jar 放在正确的位置,尽管如此我还是收到了这个错误。

任何人都可以弄清楚为什么我会收到此错误,因为我没有这样做......:(

最佳答案

问题是您的脚本更改到目录 www/code/build/b2b_dev/build/web。然后它会尝试寻找 jar www/code/build/b2b_dev/yuicompressor-2.3.5.jar 相对于当前目录 找不到它。

我建议改用绝对路径。

例子:

BASE_DIR=/full/path/to/www/code/build/b2b_dev
YUI_PATH=${BASE_DIR}/yuicompressor-2.3.5.jar
DIR=${BASE_DIR}/build/web

如果必须使用相对路径,改为:

DIR=www/code/build/b2b_dev/build/web
YUI_PATH=../../yuicompressor-2.3.5.jar

关于linux - 在 sh/ksh 文件中出现奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8837739/

相关文章:

linux - 如何在 Linux 中通过 USB-to-RS232 线与设备通信?

linux - 突出显示选择和中间按钮粘贴到 jupyter notebook 中?

bash - 通过 sbatch 传递命令行参数

unix - .NET Core 中的跨平台后台服务(想想 windows 服务/unix 守护进程)?

linux - 为什么这里需要 POSIX::SigSet?

linux - 在 Linux 和 BSD 中使用和不使用 shebang 执行 Bash 脚本

linux - 如何在 unix 中附加一个带有字符串和当前日期的文件名

linux - 如何确保可以终止由 Docker 入口点启动的进程?

debugging - gdb:寄存器值为 0xffaa 时的断点

linux - 使用 gitosis 管理大量存储库的最简单(也是最简洁)的方法是什么?