How do I capture a variable but ignore standard error?

daworley
Contributor II

Hey all,

I'm working on a script to rename permissions on accounts moved from Open Directory to Active Directory.

As part of the checks (while loop logic) to see if the account exists I am querying AD for the GUID of the account:

/usr/bin/dscl /Active Directory/$domain/All Domains/ -read /Users/$user GeneratedUID | /usr/bin/awk '{print $NF;}')"

This works great for accounts that do exist in that domain, but if they don't the command fails. (I might have mistyped this from my script, but the logic works πŸ˜‰ )

How can I capture this information into a variable, and have sterr ignore the cases where the command populating the variable fails?

1 ACCEPTED SOLUTION

eyemyth
New Contributor III

Add ```
2> /dev/null
``` to redirect stderr to /dev/null

View solution in original post

2 REPLIES 2

eyemyth
New Contributor III

Add ```
2> /dev/null
``` to redirect stderr to /dev/null

View solution in original post

bentoms
Honored Contributor III
Honored Contributor III

Here's one i made earlier.

accountUniqueID=`dscl . -read /Users/$1 2>dev/null | ?grep UniqueID | cut -c 11-`