Certainly! You can use the following bash script to achieve this. The script will use netcat (nc) to listen on a specified port and handle incoming HTTP requests, returning either a "Hello, World!" HTML response or a 405 "Method Not Allowed" error, depending on the request method.

``` bash 
#!/bin/sh

# Set the listening port
PORT=8080

# Define the HTTP response headers
HTTP_OK="HTTP/1.1 200 OK"
HTTP_METHOD_NOT_ALLOWED="HTTP/1.1 405 Method Not Allowed"
CONTENT_TYPE_HTML="Content-Type: text/html"
CONNECTION_CLOSE="Connection: close"

# Define the HTML response body
HELLO_WORLD_RESPONSE="<!DOCTYPE html>
<html>
<head>
    <title>Hello, World!</title>
</head>
<body>
    <h1>Hello, World!</h1>
</body>
</html>"

# Define the function to handle incoming HTTP requests
handle_request() {
    request_method=$(echo "$1" | grep -oP '^\w+')

    if [ "$request_method" = "GET" ]; then
        response="$HTTP_OK\n$CONTENT_TYPE_HTML\n$CONNECTION_CLOSE\n\n$HELLO_WORLD_RESPONSE"
    else
        response="$HTTP_METHOD_NOT_ALLOWED\n$CONNECTION_CLOSE\n\nMethod Not Allowed"
    fi

    echo -e "$response"
}

# Continuously listen for HTTP requests using netcat (nc)
while true; do
    request=$(echo -e "HTTP/1.1 200 OK\n\n" | nc -l -p "$PORT" -q 1)
    response=$(handle_request "$request")
    echo "$response" | nc -l -p "$PORT" -q 1
done

```

To use this script, save it as "http_server.sh" and make it executable with chmod +x http_server.sh. Then, run it with ./http_server.sh. The script will listen for incoming HTTP requests on port 8080. You can change the port number by modifying the PORT variable in the script. Note that you may need to run the script with root privileges if you want to use a port number below 1024.
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence