파일 위치를 매개변수로 사용하는 명령(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 형식의 파일 이름을 통해 제공하는 방법을 설정합니다.