感谢您查看我的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"
答案 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