Skip to main content
`Ctrl`+`K`

# BashChain

This notebook showcases using LLMs and a bash process to perform simple filesystem commands.

    from langchain.chains import LLMBashChain
    from langchain.llms import OpenAI

    llm = OpenAI(temperature=0)

    text = "Please write a bash script that prints 'Hello World' to the console."

    bash_chain = LLMBashChain(llm=llm, verbose=True)

    bash_chain.run(text)

    > Entering new LLMBashChain chain...
    Please write a bash script that prints 'Hello World' to the console.

    ```bash
    echo "Hello World"
    ```['```bash', 'echo "Hello World"', '```']

    Answer: Hello World

    > Finished chain.

    'Hello World\n'

## Customize Prompt

You can also customize the prompt that is used. Here is an example prompting to avoid using the ‘echo’ utility

    from langchain.prompts.prompt import PromptTemplate

    _PROMPT_TEMPLATE = """If someone asks you to perform a task, your job is to come up with a series of bash commands that will perform the task. There is no need to put "#!/bin/bash" in your answer. Make sure to reason step by step, using this format:
    Question: "copy the files in the directory named 'target' into a new directory at the same level as target called 'myNewDirectory'"
    I need to take the following actions:
    - List all files in the directory
    - Create a new directory
    - Copy the files from the first directory into the second directory
    ```bash
    ls
    mkdir myNewDirectory
    cp -r target/* myNewDirectory
    ```

    Do not use 'echo' when writing the script.

    That is the format. Begin!
    Question: {question}"""

    PROMPT = PromptTemplate(input_variables=["question"], template=_PROMPT_TEMPLATE)

    bash_chain = LLMBashChain(llm=llm, prompt=PROMPT, verbose=True)

    text = "Please write a bash script that prints 'Hello World' to the console."

    bash_chain.run(text)

    > Entering new LLMBashChain chain...
    Please write a bash script that prints 'Hello World' to the console.

    ```bash
    printf "Hello World\n"
    ```['```bash', 'printf "Hello World\\n"', '```']

    Answer: Hello World

    > Finished chain.

    'Hello World\n'