坏解释器没有这样的文件或目录

时间:2015-02-10 00:48:43

标签: bash shell unix

感谢您查看我的shell脚本我正在生成此错误,但不确定它为什么没有运行。在shell脚本方面,我是一个菜鸟。请帮忙。这是我的代码:

#!/bin/bash

#This script creates the log files based on the current date and hour

#Variables for managing the logs
LOG_DIRECTORY=/var/log;                 export LOG_DIRECTORY
LOG_DIRECTORY_FILE=/var/log/secure;     export LOG_DIRECTORY_FILE
MY_LOG_DIRECTORY=$LOG_DIRECTORY/mylogs; export MY_LOG_DIRECTORY
MY_LOG_FILE=$MY_LOG_DIRECTORY/mylog-`date +%m-%d-%H`;   export MY_LOG_FILE
EXPRESSTION=`date '+%b %d %H'`;                     export MY_LOG_FILE


#Checks if mylog directory exists.If not, then creates it
if [ ! -d "$MY_LOG_DIRECTORY" ]; then
mkdir -p $MY_LOG_DIRECTORY
fi

#Scripts exits successfully, If the log already exists
if [ -f "$MY_LOG_FILE" ]; then
echo "Log file already exists. Nothing is written to log";
exit 0;
fi

#grep the contents to the log file
grep "^$EXPRESSTION" $LOG_DIRECTORY_FILE >> $MY_LOG_FILE
echo "New myLog file created successfully"

2 个答案:

答案 0 :(得分:1)

您的脚本需要保存为UNIX文本文件。

尝试在其上运行dos2unix,或在vim中打开它并运行:set fileformat=unix并保存。

如果您没有dos2unix,并且对vim不满意,可以使用perl:

perl -pi -e 's/\r\n?/\n/g' your-script-filename

答案 1 :(得分:0)


"bad interpreter no such file or directory"错误表示/bin/bash不存在。

尝试将脚本作为
$ sh log.sh

或使用其他一些可用的shell解释器(例如/bin/sh/bin/ksh)而不是/bin/bash