Зачем bash нужен && для вывода переменной на одной строке?

Зачем bash нужен && для вывода переменной на одной строке?

Почему нужно SOMETHING=1 && echo $SOMETHINGвернуть &&Почему 1
не SOMETHING=1 echo $SOMETHINGвозвращается1

решение1

Потому что bash выполняет расширение переменной до интерпретации операторов присваивания переменной. Так что, поскольку НЕЧТО не было ранее определено, ваша команда становится…

SOMETHING=1 echo ''

…затем его казнят.

решение2

экспорт и эхо одновременно

root@kali:~# echo ${SOMETHING=1}
1
root@kali:~# echo $SOMETHING
1
root@kali:~# unset SOMETHING
root@kali:~# echo $SOMETHING

root@kali:~# echo ${SOMETHING=1}
1
root@kali:~# 

Еще один глупый пример xD

root@kali:~# echo ${SOMETHING=1} ${PLUS=+} ${SUMTHIN=2} ${EQUALS==} && expr $SOMETHING $PLUS $SUMTHIN
1 + 2 =
3
root@kali:~# 

решение3

Вам нужно будет оценить переменную позже (после того, как она будет назначена). Используйте, например,

SOMETHING=1 eval 'echo $SOMETHING'

для предотвращения распространения SOMETHING.

Связанный контент