문자열을 Unix 명령으로 변환

문자열을 Unix 명령으로 변환

변수와 그 포함 문자열이 있습니다.

LST_FILE='find \"$2\" \"${TYPE[@]}\" \"${NAME[@]}\" -mmin +\"$HOUR_TO_MIN\"'

관련 문자열을 명령으로 변환하는 방법은 무엇입니까? 평가판을 사용할 수 있습니까? 아니면 eval을 사용하는 것이 권장되지 않는다는 내용을 읽었으므로 eval에 대한 대안이 있습니까?

eval $LST_FILE

다음 명령을 실행할 계획이므로,

LST_FILE+='-delete'
eval $LST_FILE

답변1

예, eval은 더 이상 사용되지 않으며 답변되었습니다.여기왜.

이제 컨텍스트, 코드 및 예상 결과를 제공하지 않기 때문에 무엇을 하려는지 잘 모르겠지만 일부 조건에 따라 찾기를 수행하기 위해 데이터를 조작하려는 경우 그렇게 할 수 있습니다. 이와 같이:

LST_FILE_DELETE='-delete'
find "$2" "${TYPE[@]}" "${NAME[@]}" -mmin +"$HOUR_TO_MIN" "${LST_FILE_DELETE}"

일반적으로 솔루션이 복잡해 보이거나 여러 가지 해결 방법을 거쳐야 하는 경우 문제를 다시 생각하고 해결 방법을 생각해야 하며, 해결 방법을 사용하지 않고도 문제를 해결할 수 있는 더 나은 방법을 찾을 가능성이 높습니다.

관련 정보