2
는bash에서 백틱에 사용되는 유효한 명령은 무엇입니까?
echo ${command1} -> mysql -umyuser -pmypassword -e "show databases;";
echo ${command2} -> cat stackoverflow.txt
내 목표는 변수에서 명령을 실행하고 다른에서 결과의 저장하는 것입니다, 다음과 같이
command1="mysql -umyuser -pmypassword -e \"show databases;\";"
command2="cat stackoverflow.txt"
문자열이 형성되고, 두 개의 명령을 고려하십시오.
그래서 내가 뭘,
result1=`${command1}`
ERROR 1049 (42000): Unknown database 'databases;";'
하지만,
result2=`${command2}`
작품을 완벽하게 괜찮습니다.
백틱 대신 $()
을 사용하면 명령이 동일하게 작동합니다.
변수 대신 역 인용 부호로 직접 실행하면이 두 명령이 완벽하게 작동합니다.
왜 이렇게 다른 행동입니까?