실행하기 전에 bash 재처리 문자열

실행하기 전에 bash 재처리 문자열

hello world현재 디렉터리에 이름이 지정된 디렉터리가 있다고 가정합니다 . 예, 디렉토리에 공백이 있습니다. 예를 들어 f1.txt라는 파일이 있다고 가정해 보겠습니다.

ls 'hello world'

인쇄할 것이다

f1.txt

하지만

a="ls 'hello world'"
$a

설명하다

ls: cannot access ''\''hello': No such file or directory
ls: cannot access 'world'\''': No such file or directory

그래서 문제는 ls로 디렉토리 목록을 얻는 방법입니다 hello world. 기본적으로 이 작업을 수행하는 방법

a="1 2"
b="ls $a"
$b

실제로 폴더의 내용을 나열합니다.hello world

PS: 난 그러고 싶지 않아

a="1 2"
ls $a

저장한 다음 실행하고 싶습니다.

답변1

francois@zaphod:~$ mkdir "hello world"
francois@zaphod:~$ touch "hello world"/{a,b,c}
francois@zaphod:~$ a="ls 'hello world'"
francois@zaphod:~$ eval "$a"
a  b  c
francois@zaphod:~$ 

eval 변수는 실행해야 하는 명령의 텍스트로 해당 변수를 실행합니다.

관련 정보