Quando executo o comando abaixo no bash shell:
if [[ $(readonly | cut -d= -f1 | grep -qo HISTFILE && echo $?) == 0 ]]; then sudo grep -iwo "readonly HISTFILE" /etc/profile /etc/profile.d/*; else echo "HISTFILE not set or not set properly"; fi
O comando acima retorna o resultado com o que desejo, ou seja:
/etc/profile.d/os-security.sh:readonly HISTFILE
Mas quando coloco o comando acima no shell script, o resultado muda, ou seja:
HISTFILE not set or not set properly
Aqui o shell completo:
[ansible@rhel8-hardening-test ~]$ if [[ $(readonly | cut -d= -f1 | grep -qo HISTFILE && echo $?) == 0 ]]; then sudo grep -iwo "readonly HISTFILE" /etc/profile /etc/profile.d/*; else echo "HISTFILE not set or not set properly"; fi
/etc/profile.d/os-security.sh:readonly HISTFILE
[ansible@rhel8-hardening-test ~]$
[ansible@rhel8-hardening-test ~]$
[ansible@rhel8-hardening-test ~]$
[ansible@rhel8-hardening-test ~]$ cat test.sh
#!/bin/bash
if [[ $(readonly | cut -d= -f1 | grep -qo HISTFILE && echo $?) == 0 ]]; then sudo grep -iwo "readonly HISTFILE" /etc/profile /etc/profile.d/*; else echo "HISTFILE not set or not set properly"; fi
[ansible@rhel8-hardening-test ~]$
[ansible@rhel8-hardening-test ~]$
[ansible@rhel8-hardening-test ~]$
[ansible@rhel8-hardening-test ~]$ bash test.sh
HISTFILE not set or not set properly
[ansible@rhel8-hardening-test ~]$
Como posso obter o mesmo resultado que o shell atual ao usar o shell script com o comando acima?