Bird
Raised Fist0
Azurecloud~5 mins

Scripting with variables and loops in Azure - Commands & Configuration

Choose your learning style10 modes available
Introduction
Sometimes you want to run the same commands many times with small changes. Using variables and loops in scripts helps you do this easily and saves time.
When you need to create multiple Azure resources with similar settings.
When you want to update several virtual machines one by one.
When you want to automate repetitive tasks like starting or stopping services.
When you want to test different configurations quickly.
When you want to clean up many resources without typing each name.
Commands
Create a resource group named 'myResourceGroup' in the East US region to hold your Azure resources.
Terminal
az group create --name myResourceGroup --location eastus
Expected OutputExpected
{ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup", "location": "eastus", "managedBy": null, "name": "myResourceGroup", "properties": { "provisioningState": "Succeeded" }, "tags": {}, "type": "Microsoft.Resources/resourceGroups" }
→
--name - Sets the name of the resource group.
→
--location - Sets the Azure region for the resource group.
This loop creates three virtual machines named vm1, vm2, and vm3 in the resource group. It uses a variable to change the VM name each time.
Terminal
for vmName in vm1 vm2 vm3; do az vm create --resource-group myResourceGroup --name $vmName --image UbuntuLTS --admin-username azureuser --generate-ssh-keys; done
Expected OutputExpected
- Running ... { "fqdns": "", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/vm1", "location": "eastus", "name": "vm1", "powerState": "VM running", "resourceGroup": "myResourceGroup", "zones": "" } - Running ... { "fqdns": "", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/vm2", "location": "eastus", "name": "vm2", "powerState": "VM running", "resourceGroup": "myResourceGroup", "zones": "" } - Running ... { "fqdns": "", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/vm3", "location": "eastus", "name": "vm3", "powerState": "VM running", "resourceGroup": "myResourceGroup", "zones": "" }
→
--resource-group - Specifies the resource group where the VM will be created.
→
--name - Sets the name of the virtual machine.
→
--image - Specifies the OS image for the VM.
This loop stops each virtual machine named vm1, vm2, and vm3 in the resource group using the variable vmName.
Terminal
for vmName in vm1 vm2 vm3; do az vm stop --resource-group myResourceGroup --name $vmName; done
Expected OutputExpected
- Stopping vm1 ... { "status": "Succeeded" } - Stopping vm2 ... { "status": "Succeeded" } - Stopping vm3 ... { "status": "Succeeded" }
→
--resource-group - Specifies the resource group of the VM.
→
--name - Specifies the VM to stop.
Key Concept

Using variables and loops in scripts lets you repeat commands with small changes automatically, saving time and avoiding mistakes.

Common Mistakes
Not using the $ sign before the variable name inside the loop.
The shell treats the variable name as plain text, so the command uses the literal string instead of the variable value.
Always use $variableName to access the value stored in the variable.
Forgetting to separate items in the loop with spaces.
The loop does not recognize the items correctly and may run zero or one iteration.
Separate each item with a space inside the loop declaration.
Running loops without creating the resource group first.
Commands fail because the target resource group does not exist.
Always create the resource group before creating resources inside it.
Summary
Create a resource group first to hold your Azure resources.
Use a loop with variables to run the same command multiple times with different values.
Use the $ sign to access variable values inside the loop commands.

Practice

(1/5)
1. What is the main purpose of using variables in Azure scripting?
easy
A. To store values that can be reused throughout the script
B. To create loops that repeat commands
C. To delete resources automatically
D. To connect to the internet

Solution

  1. Step 1: Understand what variables do

    Variables hold information like names or numbers that you want to use again without typing them multiple times.
  2. Step 2: Identify the correct purpose in scripting

    Variables help scripts remember values so you can use them repeatedly and easily change them if needed.
  3. Final Answer:

    To store values that can be reused throughout the script -> Option A
  4. Quick Check:

    Variables = reusable values [OK]
Hint: Variables hold values to reuse in scripts [OK]
Common Mistakes:
  • Confusing variables with loops
  • Thinking variables delete resources
  • Believing variables connect to internet
2. Which of the following is the correct way to declare a variable named count with value 5 in an Azure CLI script?
easy
A. var count = 5
B. let count = 5
C. set count=5
D. count=5

Solution

  1. Step 1: Recall Azure CLI variable syntax

    In Azure CLI scripts (bash style), variables are assigned without keywords using name=value format.
  2. Step 2: Match the correct syntax

    count=5 uses count=5, which is the correct bash style assignment.
  3. Final Answer:

    count=5 -> Option D
  4. Quick Check:

    Azure CLI variable = name=value [OK]
Hint: Use name=value to assign variables in Azure CLI [OK]
Common Mistakes:
  • Using 'var' or 'let' which are not bash syntax
  • Using 'set' which is Windows CMD syntax
  • Adding spaces around '=' which breaks assignment
3. What will be the output of this Azure CLI script snippet?
for i in 1 2 3; do
  echo $((i * 2))
done
medium
A. 2 4 6
B. 0 1 2
C. 1 2 3
D. Syntax error

Solution

  1. Step 1: Understand the loop iterations

    The loop runs with i values 1, then 2, then 3.
  2. Step 2: Calculate the expression inside echo

    Each iteration prints i multiplied by 2: 1*2=2, 2*2=4, 3*2=6.
  3. Final Answer:

    2 4 6 -> Option A
  4. Quick Check:

    Loop * 2 = 2 4 6 [OK]
Hint: Multiply loop variable inside $(( )) for math [OK]
Common Mistakes:
  • Confusing echo $i with echo $((i * 2))
  • Expecting space-separated output on one line
  • Thinking syntax error due to missing semicolons
4. Identify the error in this Azure CLI script snippet:
for i in 1 2 3 do
  echo $i
done
medium
A. echo command is incorrect
B. Variable $i is not defined
C. Missing semicolon or newline after for statement
D. done keyword is missing

Solution

  1. Step 1: Check for correct for loop syntax

    In bash scripts, the for loop header must end with a semicolon or a newline before the do keyword.
  2. Step 2: Identify the missing semicolon or newline

    The snippet has no semicolon or newline after for i in 1 2 3, causing syntax error.
  3. Final Answer:

    Missing semicolon or newline after for statement -> Option C
  4. Quick Check:

    For loop header needs semicolon/newline before do [OK]
Hint: Add semicolon or newline before do in for loops [OK]
Common Mistakes:
  • Forgetting semicolon after for statement
  • Assuming $i is undefined
  • Thinking echo syntax is wrong
5. You want to create 3 Azure resource groups named rg1, rg2, and rg3 using a script with a loop and a variable prefix rg. Which script snippet correctly achieves this?
hard
A. prefix=rg for i in 1 2 3; do az group create --name $prefix + $i --location eastus done
B. prefix=rg for i in 1 2 3; do az group create --name "$prefix$i" --location eastus done
C. prefix=rg for i in 1 2 3; do az group create --name prefix$i --location eastus done
D. for i in 1 2 3; do az group create --name "rg" + i --location eastus done

Solution

  1. Step 1: Understand variable concatenation in bash

    To combine a variable and a number, use double quotes and place variables side by side like "$prefix$i".
  2. Step 2: Check each option for correct syntax

    prefix=rg for i in 1 2 3; do az group create --name "$prefix$i" --location eastus done correctly uses "$prefix$i" to form names rg1, rg2, rg3. Others use invalid concatenation or miss quotes.
  3. Final Answer:

    prefix=rg for i in 1 2 3; do az group create --name "$prefix$i" --location eastus done -> Option B
  4. Quick Check:

    Use "$prefix$i" to join strings in bash [OK]
Hint: Use "$prefix$i" to join variable and number in bash [OK]
Common Mistakes:
  • Using + for string concat in bash
  • Not quoting variable expansions
  • Writing variable names without $ sign
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard