[Gambas-user] auto detect pipe |

BB adamnt42 at gmail.com
Wed Nov 1 14:18:50 CET 2023


On 1/11/23 11:46 pm, BB wrote:
> On 1/11/23 11:05 pm, Bruce Steers wrote:
>> i have made a command that supports piping using Application_Read()
>>
>> Static Public Sub Application_Read()
>>
>>   $bReading = True
>>
>>   While Lof(Last)
>>     $aArgs[0] = Last.ReadLine()
>>     ProcessString()
>>     If Not Eof(Last) And If Not $bNewLine Then Print ""
>>   Wend
>>
>>   $bReading = False
>>
>> End
>>
>> it works but i have added an arg -p that if i use -p then the pipe is 
>> read.
>> Eg.
>> echo "This text" | mycommand -p
>>
>> can i detect if a pipe is to be used or not automatically?
>>
>> Respects
>> BruceS
>>
> My rusting brain tells me that I doubt you have much joy, as pipes are 
> entirely the matter of the shell. I did find this though, on stackoverflow
>
> In a pure POSIX shell,
>
> |if [ -t 1 ] ; then echo terminal; else echo "not a terminal"; fi |
>
> returns "terminal", because the output is sent to your terminal, whereas
>
> |(if [ -t 1 ] ; then echo terminal; else echo "not a terminal"; fi) | cat |
>
> returns "not a terminal", because the output of the parenthetic 
> element is piped to |cat|.
>
> ------------------------------------------------------------------------
>
> The |-t| flag is described in man pages as
>
>     -t fd True if file descriptor fd is open and refers to a terminal.
>
> ... where |fd| can be one of the usual file descriptor assignments:
>
>   * 0: standard input
>     <https://en.wikipedia.org/wiki/Standard_streams#Standard_input_(stdin)>
>   * 1: standard output
>     <https://en.wikipedia.org/wiki/Standard_streams#Standard_output_(stdout)>
>   * 2: standard error
>     <https://en.wikipedia.org/wiki/Standard_streams#Standard_error_(stderr)>
>
> b
>
p.s.

https://stackoverflow.com/questions/911168/how-can-i-detect-if-my-shell-script-is-running-through-a-pipe

note there are a lot of butifs down the page.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20231101/16b98a35/attachment.htm>


More information about the User mailing list