On 2024-11-21 13:21, Jeffrey Walton wrote:
On Wed, Nov 20, 2024 at 9:42 PM Bitfox <h...@bitfox.ddns.net> wrote:

In my bash shell script, when I say:

sudo echo "something" >>/etc/postfix/virtual_alias_maps

it could not run with the prompts:

bin/mask.sh: line 18: /etc/postfix/virtual_alias_maps: Permission denied


but, if I just say:

echo "something" >>/etc/postfix/virtual_alias_maps

and run that script with the form of "sudo bin/mask.sh", it successes.

Can you help me why the first sudo failed?

Greg gave you the answer.

What I do in this case is, I don't use sudo in the script. Instead I
run the script with sudo like Keith suggested. However, I add this to
the beginning of the script to gracefully exit:

<SNIP>
#!/usr/bin/env bash

# Control our PATH
PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH
export PATH

if [[ "${UID}" -ne 0 ]]; then

Thank you for your support. That makes sense.

BTW, what’s the difference between [[ ]] and [ ] here? I know only the latter.

Regards

Reply via email to