According to instructions in the assignment 3 (section 1.9), the following commands should be entered on AWS cloud shell:
[1] export ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
[2] aws s3 cp s3://dlai-data-engineering/labs/c4w3a1-177787-vocapi/C4_W3_Assignment.ipynb s3://de-c4w3a1-ACCOUNT_ID-us-east-1-emr-bucket/emr-studio/(aws s3 ls s3://de-c4w3a1-$ACCOUNT_ID-us-east-1-emr-bucket/emr-studio –
When entering command [2] above nothing happens, except that a “>” prompt is shown. The jupyter notebook seems not to load and cannot be seen.
What to do?
The > prompt means the shell thinks the command is incomplete. It’s waiting for the rest of it.
This happens because the aws s3 cp command in step 1.9 is very long and contains a $(...) subshell. If even one character gets cut off during copy-paste (especially the closing )), CloudShell will keep showing > waiting for more input.
Press Ctrl+C to cancel and get back to the normal $ prompt.
Then:
- Re-copy the full command carefully. It starts with
aws s3 cp s3://dlai-data-engineering/... and ends with .../C4_W3_Assignment.ipynb. Make sure you’re getting everything, including the closing parenthesis.
- Check for character corruption. Browsers sometimes silently convert
-- (double hyphen) into – (en-dash). If you spot that anywhere in the pasted command, fix it manually.
- Paste in CloudShell using Ctrl+Shift+V (or right-click → Paste). Regular Ctrl+V can sometimes mangle long commands.
If it still doesn’t work, try running this version where the subshell part is broken into a variable first:
export ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
WORKSPACE_ID=$(aws s3 ls s3://de-c4w3a1-$ACCOUNT_ID-us-east-1-emr-bucket/emr-studio --recursive | grep -o "e-[^/]*" | head -n 1)
aws s3 cp s3://dlai-data-engineering/labs/c4w3a1-177787-vocapi/C4_W3_Assignment.ipynb s3://de-c4w3a1-$ACCOUNT_ID-us-east-1-emr-bucket/emr-studio/$WORKSPACE_ID/C4_W3_Assignment.ipynb
This does the exact same thing but is easier to copy without breaking.