파일 대신 인라인 구분 기호

파일 대신 인라인 구분 기호

파일 위치를 매개변수로 사용하는 명령(php 파일)이 있습니다.

예를 들어.

$ php ./ScriptName.php /my/file/location.txt

때로는 한두 단어만 필요하기 때문에 다음 명령에서 참조할 수 있도록 location.txt 파일을 만들고 싶지는 않습니다. 오히려 해당 명령을 사용하여 어떤 방식으로든 파이프하는 것이 좋습니다. 예를 들어, location.txt위 예의 내용을 고려해보세요.

mywords

"더미" 파일의 내용만 제공하도록 원래 명령줄 매개변수를 다시 작성할 수 있는 방법이 있습니까?

답변1

변형을 사용할 수 있습니다/dev/fd/0장난파일 이름이 필요한 스크립트에 문자열을 전달합니다.

php ./ScriptName.php php://fd/0 <<<'mywords'

예를 들어 script.php에는 다음이 포함됩니다.

<?php
   $handle=fopen($argv[1],"r");
   echo "Read: ".fgets($handle);
   fclose($handle);
?>

달리기:

php script.php php://fd/0 <<<'Some text'

산출:

Read: Some text

답변2

zsh, bash 또는 ksh와 같이 프로세스 대체를 허용하는 쉘이 있는 경우 다음을 수행할 수 있습니다.

php ScriptName.php <(echo mywords)

쉘은 다른 쉘에서 echo 명령을 실행하고 출력을 명명된 fifo로 제공하거나 보다 일반적으로 파이프와 /dev/fd/XX 형식의 파일 이름을 통해 제공하는 방법을 설정합니다.

관련 정보