Posted on 05-22-2020 04:45 AM
I am using the following script as a EA to pull up the users iCloud account name, this works fine but if the machine hasn't updated inventory, or, if the user hasn't created a iCloud account then its just blank, I would like the script to report None if the iCloud account doesn't exist, could anyone modify the script to accommodate this ?
#!/bin/bash for user in $(ls /Users/ | grep -v Shared); do if [ -d "/Users/$user/Library/Application Support/iCloud/Accounts" ]; then Accts=$(find "/Users/$user/Library/Application Support/iCloud/Accounts" | grep '@' | awk -F'/' '{print $NF}') iCloudAccts+=(${user}: ${Accts}) fi done echo "<result>$(printf '%s ' "${iCloudAccts[@]}")</result>"
Posted on 05-22-2020 06:50 AM
@gary.owen Try this:
#!/bin/bash
for user in $(ls /Users/ | grep -v Shared); do
if [ -d "/Users/$user/Library/Application Support/iCloud/Accounts" ]; then
Accts=$(find "/Users/$user/Library/Application Support/iCloud/Accounts" | grep '@' | awk -F'/' '{print $NF}')
iCloudAccts+=(${user}: ${Accts})
else
Accts="None"
iCloudAccts+=(${user}: ${Accts})
fi
done
echo "<result>$(printf '%s
' "${iCloudAccts[@]}")</result>"
Posted on 05-22-2020 04:07 PM
Thats great, Thanks
Posted on 04-05-2024 11:31 AM
I tried to run this on a 2021 M1Pro Sonoma 14.4.1 and received these results:
Last login: Fri Apr 5 10:51:22 on ttys000
robert.buss@W2LFT4NV52 ~ % #!/bin/bash
for user in $(ls /Users/ | grep -v Shared); do
if [ -d "/Users/$user/Library/Application Support/iCloud/Accounts" ]; then
Accts=$(find "/Users/$user/Library/Application Support/iCloud/Accounts" | grep '@' | awk -F'/' '{print $NF}')
iCloudAccts+=(${user}: ${Accts})
else
Accts="None"
iCloudAccts+=(${user}: ${Accts})
fi
done
echo "<result>$(printf '%s
' "${iCloudAccts[@]}")</result>"
zsh: event not found: /bin/bash
robert.buss@W2LFT4NV52 ~ %
How do I correct this so it runs?
Posted on 04-30-2024 10:25 AM
You need to put it into a file (for example, icloud.sh) and then make that file executable with a `chmod u+x icloud.sh`