단어를 나누지 않는 방법 [중복]

단어를 나누지 않는 방법 [중복]

cmds한 줄에 하나씩 명령 이라는 이름의 파일에 명령 목록이 있습니다 .

마지막 명령을 가져와서 변수에 설정 last_command하고 나중에 실행하고 싶습니다. 또는 , 또는 더 적절한 것을 사용하세요 $last_command."$last_command"

먼저 마지막 명령을 받습니다.

$ last_command="$(cat cmds | tail -1)"
$ echo $last_command
cat file1 file2 file\ 3

마지막 줄 cmds은 입니다 cat cat file1 file2 file\ 3.

문제는 내가 그것을 실행할 때 와 사이의 공백이 파일 이름의 일부 라는 "$last_command"것을 알지 못해 오류가 발생한다는 것입니다.file3

답변1

파일의 명령이 정확하고 필요한 모든 공백이 문제를 피한다고 가정하면 eval이것이 도움이 될 것입니다. $last_command이것을 실행하는 대신 :

eval $last_command

추신. eval보안 문제가 쉽게 발생할 수 있으므로 일반적으로 모범 사례로 간주되지 않습니다.

관련 정보