2016-09-23 4 views
1

内容:パイプコードのshに - 私のリモートファイルをスクリプトの読み込みコマンドを待機していない

#!/bin/sh 
read foo && echo "$foo" 

私は、端末にローカルでやっているもの:

$ curl -fLSs http://example.com/my-remote-file.sh | sh 

何私は期待しています:

ダウンロードしたスクリプトは、ユーザーは何かを入力し、ユーザーの入力を待つ。

ダウンロードしたスクリプトはreadコマンドをスキップし、実行を継続:実際に何が起こる

質問

どのように私はcurl経由でダウンロードされたスクリプトからの入力何かにユーザを促すことができますか?私はsh <(curl -fLSs http://example.com/my-remote-file.sh)が動作していることを知っていますが、これはPOSIXに準拠していないため、これを実現したいと思います。

+0

リモートファイルの最初の行としてシェバングを入れてみてください... '#/ binに/ bash'または類似:あなたはこのように、端末からの特別読むためにそれを指示するスクリプトを変更する必要があります。 –

+0

@MarkSetchell:もちろん、私のリモートファイルにはシバンがあります。しかし、それを私のコードスニペットに加えて、それをもっと明確にします。 – headacheCoder

答えて

2

stdinは、キーボードではなくcurlです。

read input < /dev/tty 
echo $input 
+0

実際には、私は 'bash'を使いたくないので、これは私の質問に答えていません。 – headacheCoder

+0

これは動作しますか? 'echo date | sh ' –

+1

私はこれについてもう一つ考えました...もう一度見てください。 –

関連する問題