Skip to content

Commit 47959a2

Browse files
committed
Fix set -u empty array expansion in 9 scripts
Under set -u, ${ARRAY[@]} on an empty array triggers 'unbound variable'. Fix: use ${ARRAY[@]+"${ARRAY[@]}"} which expands to nothing when empty. Scripts fixed: 001, 015, 046, 049, 055, 062, 070, 077, 079 Tested locally: 070, 062, 077, 079 all pass clean.
1 parent b8bc0d1 commit 47959a2

10 files changed

Lines changed: 33 additions & 12 deletions

File tree

.gitignore

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
*.log
2+
*.pem
3+
aws-eump-logs/
4+
dynamodb-tutorial-logs/
5+
Dockerfile
6+
document.png
7+
dashboard-body-*.json
8+
comprehend-policy.json
9+
hello-world.json
10+
input.json
11+
query-results.csv
12+
sentiment-*.json
13+
step-functions-trust-policy.json
14+
stepfunctions-policy.json
15+
textract-*.json
16+
updated-hello-world.json
17+
webserver-template-*.yaml
18+
qbusiness-*.json
19+
datazone_script_v3_fixed.log
20+
idc_setup_*.log
21+
workspaces_creation.log

tuts/001-lightsail-gs/lightsail-gs.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ track_resource() {
4848
# Function to clean up resources
4949
cleanup_resources() {
5050
echo "Resources created by this script:"
51-
for resource in "${CREATED_RESOURCES[@]}"; do
51+
for resource in "${CREATED_RESOURCES[@]+"${CREATED_RESOURCES[@]}"}"; do
5252
echo " $resource"
5353
done
5454

@@ -250,7 +250,7 @@ fi
250250
# Step 7: Clean up resources
251251
echo "Step 7: Clean up resources"
252252
echo "The script has created the following resources:"
253-
for resource in "${CREATED_RESOURCES[@]}"; do
253+
for resource in "${CREATED_RESOURCES[@]+"${CREATED_RESOURCES[@]}"}"; do
254254
echo " $resource"
255255
done
256256

tuts/015-vpc-peering/vpc-peering.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ echo "Route Table 2 ID: $RTB2_ID"
382382
echo "Route Table 2 Association ID: $RTB2_ASSOC_ID"
383383
echo ""
384384
echo "Created resources:"
385-
for resource in "${CREATED_RESOURCES[@]}"; do
385+
for resource in "${CREATED_RESOURCES[@]+"${CREATED_RESOURCES[@]}"}"; do
386386
echo "- $resource"
387387
done
388388
echo "=============================================="

tuts/046-aws-systems-manager-gs/aws-systems-manager-gs.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,7 @@ echo ""
528528
echo "==========================================="
529529
echo "CREATED RESOURCES"
530530
echo "==========================================="
531-
for resource in "${CREATED_RESOURCES[@]}"; do
531+
for resource in "${CREATED_RESOURCES[@]+"${CREATED_RESOURCES[@]}"}"; do
532532
echo "$resource"
533533
done
534534

tuts/049-aws-end-user-messaging-gs/aws-end-user-messaging-gs.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ cleanup() {
4343

4444
# Optionally delete AWS resources
4545
if [ "${DELETE_AWS_RESOURCES:-false}" = "true" ]; then
46-
for resource in "${AWS_RESOURCES[@]}"; do
46+
for resource in "${AWS_RESOURCES[@]+"${AWS_RESOURCES[@]}"}"; do
4747
echo "Deleting AWS resource: $resource"
4848
aws pinpoint delete-app --application-id "$resource" 2>/dev/null || \
4949
echo "Warning: Failed to delete application $resource"
@@ -406,7 +406,7 @@ echo "==========================================="
406406
echo "RESOURCES CREATED"
407407
echo "==========================================="
408408
echo "AWS Resources:"
409-
for resource in "${AWS_RESOURCES[@]}"; do
409+
for resource in "${AWS_RESOURCES[@]+"${AWS_RESOURCES[@]}"}"; do
410410
echo "- Application: $resource"
411411
done
412412

tuts/055-amazon-vpc-lattice-gs/amazon-vpc-lattice-getting-started.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ log_command "aws vpc-lattice list-service-network-vpc-associations --service-net
290290
# Step 10: Cleanup - Auto-confirm
291291
echo -e "\n=== Step 10: Resource Cleanup ===" | tee -a "$LOG_FILE"
292292
echo "Resources created in this tutorial:" | tee -a "$LOG_FILE"
293-
for resource in "${CREATED_RESOURCES[@]}"; do
293+
for resource in "${CREATED_RESOURCES[@]+"${CREATED_RESOURCES[@]}"}"; do
294294
echo "- $resource" | tee -a "$LOG_FILE"
295295
done
296296

tuts/062-aws-support-gs/aws-support-gs.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ else
277277
if [[ ${#CREATED_RESOURCES[@]} -eq 0 ]]; then
278278
echo "No resources were created."
279279
else
280-
for resource in "${CREATED_RESOURCES[@]}"; do
280+
for resource in "${CREATED_RESOURCES[@]+"${CREATED_RESOURCES[@]}"}"; do
281281
echo "- $resource"
282282
done
283283
fi

tuts/070-amazon-dynamodb-gs/amazon-dynamodb-gs.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,15 +89,15 @@ cleanup() {
8989
echo "CLEANUP"
9090
echo "==========================================="
9191
echo "Resources to clean up:"
92-
for resource in "${RESOURCES[@]}"; do
92+
for resource in "${RESOURCES[@]+"${RESOURCES[@]}"}"; do
9393
echo "- $resource"
9494
done
9595
echo ""
9696

9797
if [[ ${#RESOURCES[@]} -gt 0 ]]; then
9898
echo "Proceeding with cleanup of all created resources..."
9999

100-
for resource in "${RESOURCES[@]}"; do
100+
for resource in "${RESOURCES[@]+"${RESOURCES[@]}"}"; do
101101
if [[ "$resource" == Table:* ]]; then
102102
local table_name="${resource#Table:}"
103103
echo "Deleting table: $table_name"

tuts/077-aws-account-management-gs/aws-account-management-gs.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ sleep "$API_CALL_DELAY"
267267
# Security: Define valid contact types
268268
declare -a CONTACT_TYPES=("BILLING" "OPERATIONS" "SECURITY")
269269

270-
for contact_type in "${CONTACT_TYPES[@]}"; do
270+
for contact_type in "${CONTACT_TYPES[@]+"${CONTACT_TYPES[@]}"}"; do
271271
{
272272
echo ""
273273
echo "Attempting to check $contact_type contact information..."

tuts/079-aws-iot-device-defender-gs/aws-iot-device-defender-gs.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -667,7 +667,7 @@ echo "==================================================="
667667
echo "AWS IoT Device Defender setup completed successfully!"
668668
echo "==================================================="
669669
echo "The following resources were created:"
670-
for resource in "${CREATED_RESOURCES[@]}"; do
670+
for resource in "${CREATED_RESOURCES[@]+"${CREATED_RESOURCES[@]}"}"; do
671671
echo "- $resource"
672672
done
673673
echo ""

0 commit comments

Comments
 (0)