do shell script runs a different form of shell, not the same shell as Terminal app.
do shell script runs a unique shell that ends and can never be referenced ever again.
So if your shell commands require any follow up commands, they must be executed in the same line seporated with ; otherwise entering username and passwords for example, at multiple prompts are impossible.
So for 99% of tasks that require reading the output data, "do shell script" is not going to work.
If you need the output, you proobobly intend to follow up with another shell command based on that output.
That cannot be done in a unique applescript shell that ends and can never continue where it left off.
You can check the progress of a running shell with
set commandString to "/bin/ls -AelO" as text
tell application "Terminal"
set windowCount to (count of the windows)
if windowCount is greater than 0 then
repeat with w from 1 to windowCount
tell window 1
set windowID to id
set theTabs to tabs
repeat with thisTab in theTabs
if thisTab is not busy then
do script commandString in thisTab
set selected of thisTab to true
set frontmost to true
return
end if
end repeat
end tell
set frontmost of window id windowID to false
end repeat
end if
tell window 1
do script commandString
set frontmost to true
end tell
end tell
However I prefer the ease of do shell script when you only need one line of shell to run, and do not need any followup commands.