파일의 따옴표 안에 있는 내용을 반영하는 스크립트에서 호출된 파일을 만들려고 합니다. 그냥 생략했습니다 $
.
이것이 내가하려는 일입니다.
echo -e "export ORACLE_BASE=/oracle/APP/grid \n
export ORACLE_HOME=/oracle/APP/grid/12.1.0/grid\n
export PATH=$ORACLE_HOME/bin:$PATH\n export ORACLE_SID=+ASM”>/home/oragrid/ASM.env
echo
하지만 파일에 제대로 들어가지 않습니다 .
답변1
echo -e
이식성을 목적으로 하는 스크립트에는 사용 하지 마십시오 . 내장된 셸을 사용하면 printf()
이전과 마찬가지로 모든 작업을 수행할 수 있으며 셸 전체에서 호환성을 계속 유지할 수 있습니다. 그러나 요구 사항에 따라 접두사가 붙은 변수를 확장하지 않고 여러 줄 문자열을 저장하려면 $
here-doc를 사용하십시오.
cat << 'EOF' > /home/oragrid/ASM.env
export ORACLE_BASE=/oracle/APP/grid
export ORACLE_HOME=/oracle/APP/grid/12.1.0/grid
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=+ASM
EOF
EOF
이렇게 하면 변수를 확장하는 대신 모든 것이 그대로 유지됩니다 .