# Runtime Arguments Pass data into your script at execution. Arguments follow the script name: ```bash ./your_script.sh first_argument ``` Inside the script, `$1` references the first argument, `$2` the second, and so on. Let's see this in `arguments.sh`: ```bash touch arguments.sh ``` Open `arguments.sh` and add: ```bash #!/usr/bin/env bash echo "Arg 1: $1" echo "Arg 2: $2" echo "Arg 3: $3" ``` Save and exit. Make it executable: ```bash chmod +x arguments.sh ``` Run with three arguments: ```bash ./arguments.sh dog cat bird ``` Output: ```bash Arg 1: dog Arg 2: cat Arg 3: bird ``` To access *all* arguments, use `$@`. Update `arguments.sh`: ```bash #!/usr/bin/env bash echo "All arguments: $@" ``` Save. Run again with arguments: ```bash ./arguments.sh dog cat bird ``` Output: ```bash All arguments: dog cat bird ``` ### Script Name (`$0`) `$0` references the script itself. This is useful for logging or unique operations. You can even use `$0` for self-deletion. **Handle with extreme caution!** Create `self_destruct.sh`: ```bash touch self_destruct.sh ``` Open `self_destruct.sh` and add: ```bash #!/usr/bin/env bash echo "This script: $0 is self-destructing." rm -f $0 ``` Save and exit. Make it executable: ```bash chmod +x self_destruct.sh ``` Run it: ```bash ./self_destruct.sh ``` The script will print its name, then delete itself. **This is irreversible. No second chances.** Always back up before testing self-deletion.