> For the complete documentation index, see [llms.txt](https://docs.arkannis.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.arkannis.net/devops/github-actions/passing-env-variable-in-script.md).

# Passing ENV variable in script

### Passing ENV variable in script

* To pass variable in script you will have to define it in the ENV first then pass the ENV variable in the script

```yaml
name: Backup Nextcloud

on:
  schedule:
    # Runs "At 02:01" (see https://crontab.guru)
    - cron: '1 2 * * *'

jobs:
  ssh:
    name: Backup Nextcloud
  
    runs-on: [self-hosted, linux]

    env:
    # This is used to define the environment
      SYSTEM_USER: ${{ secrets.SYSTEM_USER }}
      NEXTCLOUD_SCRIPT_PATH: ${{ secrets.NEXTCLOUD_SCRIPT_PATH }}

    steps:
    - name: SSH and execute Backup Script
      uses: appleboy/ssh-action@master
      with:
        host: ${{ secrets.HOSTNAME }}
        username: ${{ secrets.USERNAME }}
        key: ${{ secrets.SSH_PRIVATE_KEY }}
        
        # This is used to pass the variables in the script
        envs: SYSTEM_USER, NEXTCLOUD_SCRIPT_PATH
        
        # This is used to execute the script from variable
        script: |
          sudo bash $NEXTCLOUD_SCRIPT_PATH
```
