åããã ãæ°ããæ¥ç¶ãã¦ã£ã³ãã¦ã«ã¦ã ããã¹ããã«ãIPã¢ãã¬ã¹ï¼VPSãå°ç¨ãµã¼ãç¨ã«æä¾ããããã®ï¼ãã ãTCPã㼠⦠ã§ã«å
ã§ä½¿ç¨ãããã®ã§ããããã¡ããuserã¯ä»ã¦ã¼ã¶ãªã®ã§PWå
¥åãæ±ãããã¾ãã åºåãä¸è¦ã®å ´åã¯. echo [å
¥åããããã¼] | [ã³ãã³ã] 1. echo [å
¥åããããã¼] | [ã³ãã³ã] ã¨ãã¾ãã. ã§ã³ã§æå®ããæåã®æåãè¨å®ããã¾ãã ä¾ãã°ãã³ãã³ãä¾ã§ã¯ã;ããå
¥åãçµäºããæåã¨ãã¦æå®ãã¦ã㾠⦠ã®å¾ãã«ã³ãã³ããå
¥åãã¾ãã. ããããã¡ã¤ã«ï¼.batï¼ã§exeã¨ãã³ãã³ããå®è¡ããã¨ãã¨ã³ã¿ã¼ãã¼ãªã©ã®ãã¼å
¥åãæ±ãããã¦ãå
¥åããªãã¨æ¬¡ã®å¦çã«é²ã¾ãªããã¨ãããã¨ã£ã¦ããã¾ããããããã§ã¯ãããããã¡ã¤ã«ã®è¨è¿°ã§ãã¼å
¥åãèªåã§è¡ãæ¹æ³ããããããã解説ãã¾ãã ã³ãã³ãã®è¿çãèå¥ãã¦æ¬¡ã®å
¥åãèªåçã«è¡ãã³ãã³ãã¼ expect -c " spawn [å®è¡ãããã³ãã³ã] expect [ã³ãã³ãã®è¿ç] send -- [次ã®ã³ãã³ã] " ã¨ãã£ãæãã§ä½¿ ⦠åããæ¹æ³ããã©ã¦ã¶ã®ã¤ã³ã¹ãã¼ã«æ¹æ³ãªã©å½¹ã«ç«ã¡ãããªæ
å ±ãæ²è¼ãã¦ãã¾ãã®ã§æ¯éãæ´»ç¨ä¸ããã Expect ã®åºæ¬ã¨åæè¨å®. ããã§ãTabããæ¼ãã¨ãèªåçã«ãlinux_memo.txtããå
¥ãã¯ãã§ãã ãã®ã¾ã¾Enterãæ¼ãã°ãã³ãã³ããå®è¡ããã¾ãã ãã¡ã¤ã«ããããªãèªåã§å
¥åãã¦ããããã ãããã¿ã¤ãããæåã¯ãã£ã¨æ¸ãããã¨ãã§ãã¾ãããã ã§ã«ããã°ã©ã ï¼bashï¼ã¯ããã¼å
¥åãå©ããããã®æ©è½ããã£ã¦ãã¾ãã ... Ctrl+P â ååå®è¡ããã³ãã³ãï¼ãã¹ããªããï¼ ä¾ãã°ã nslookup ã¨ããã³ãã³ããå®è¡ãããã¨ãã«ã¯ããã®ãã¹ã¦ãã¿ã¤ãããå¿
è¦ã¯ãªãã "nsl" ã¾ã§ã¿ã¤ãã㦠TAB ãã¼ãæ¼ãã¨ãå
¥åä¸ã® ããã³ãã ã«æ®ãã® "ookup" ãèªåçã«ä»ãå ããããããã«ãªã£ã¦ãã¾ãã Linuxã使ã£ã¦ãã人ã¯ãã¯ã©ã¤ã¢ã³ããã¼ã«ã«TeraTermã使ç¨ãã¦ãã人ãã»ã¨ãã©ãã¨æãã¾ããTeraTermã«ã¯ãTeraTermãã¯ãã¨ããèªååã®ä»çµã¿ãããã¾ããããã§ã¯ããã¯ãã使ã£ã¦æ®æ®µãã£ã¦ãã使¥ãèªååããæ¹æ³ãç´¹ä»ãã¾ãã ã³ããã®åãã«å¯¾ãã人éããã¼ãå©ãã¦è¿çãããæè¬å¯¾è©±ãèªååããã³ãã³ãåã³ã¢ã¸ã¥ã¼ã«ã§ãã ä»åã¯Linuxä¸ã®expectã³ãã³ããåãä¸ãã¾ãããCã§ãC++ã§ãåæ§ã®å¦çãå®è¡å¯è½ãªããã§ãã 以ä¸ãsudoã§ãã¹ã¯ã¼ãå
¥åãæ±ããããæä½ãèªååã ⦠ã§ã³ãä»ãã, ãã¼ã«ã«ãã¹ãã§ã³ãã³ããå®è¡, you can read useful information later efficiently. çè
㯠ããè¯ããå®å
¨ã« Expect ã使ãããã«åæè¨å®ãããã¨ããããããã¾ãã. GUI (Graphical User Interface)ç°å¢ ⦠¨éãã¦ãèªåã§{enter}ãå
¥åãããããã«ãããã®ã§ãã ä¾ãã°/Users/weed/sample/ã®ãã£ã¬ã¯ããªã«ç§»åããã«ã¯cd /Users/weed/sample/ã¨å
¥åãã¾ãã 各操作で 'y'を入力するように要求するスクリプトを実行しています$ ./script < echo 'yyyyyyyyyyyyyy'。すべての入力を一度に渡すようなソリューションを探しています。, これは、の出力yesをの入力に接続します./script。したがって、./scriptユーザー入力を要求すると、代わりにの出力を取得しますyes。の出力は、改行yesがy続く無限のストリームです。基本的には、ユーザーがのyすべての質問に対して入力しているようです./script。, 一部のツールには、常にyes回答と見なすオプションがあることに注意してください。例についてはこちらをご覧ください。「apt-get upgrade」でyes / noプロンプトをバイパスします, まれに、このコマンドでは、ユーザーが文字の後にEnterキーを押す必要がないことに注意してください。その場合、改行は省略します。, コマンドが十分に複雑で、上記の方法では不十分な場合は、expectを使用できます。, これは、シェルの文法により、コマンドラインの任意の場所でリダイレクト演算子が許可されるためです。シェルに関する限り、仮想コマンドラインは次のラインと同じです。, つまり./script、引数を指定して呼び出され'yyyyyyyyyyyyyy'、stdinはという名前のファイルから入力を取得しますecho。また、ファイルが存在しないため、bashは文句を言います。, (apt-getたとえば)サイレントモードで実行する特別なフラグを受け入れる(およびデフォルトを受け入れる)ものもあります。apt-get場合、あなたはそれに渡す-yフラグを。ただし、これはスクリプトに完全に依存します。, さらに複雑なものが必要な場合は、スクリプトをexpectスクリプトにラップできます。expectを使用すると、出力を読み取って入力を送信できるため、他のスクリプトでは許可されない非常に複雑な処理を実行できます。Wikipediaページの例の1つを次に示します。, シェルスクリプトでは、次のspawn、expect、sendのトリックも使用できます。, ただし、上記のscenerioでは、スクリプトの実行中に取得する予定のフレーズを指定する必要があります。その他の例については、次のリンクを参照してください。, さて、これは非常にエレガントなソリューションではないかもしれませんが、別のファイルにオプションを記述し、それをスクリプトへの入力として渡すと、同様に機能します。したがって、すべてのオプションを使用して新しいファイルを作成する場合(このファイルを「options.in」と呼びます)、スクリプトを簡単に実行し、./script.sh < options.inさまざまなオプションファイルを適切に編集/作成できます。, 私はDialogでbashスクリプトを書いていましたが、これも自動的に行われる必要がありました。私はこれをしました、そしてそれは魅力のように働きました。, 次のようにcat、テキストファイルからスクリプトにパイプされたスクリプトを使用して、スクリプトにユーザー入力を提供できますbash。, y、n、数字、文字列など、必要な答えが何であれ、目的のユーザー入力をinput.txtファイルに入力するだけです。, 詳細が必要です。コメントするには大きすぎます。すべての詳細を記載した新しい質問をしてください。ここにリンクを配置できます。, 簡単だ!Google Cloud Beta SQLデータのインポートで動作します!とても有難い!, @muru私にとって、あなたが言及した解決策はうまくいかなかったので、私は自分で解決しなければなりません。, @muru同様に、ファイルから回答を提供するというアイデア(これはいくつかの方法で行うことができます)は同じものではなく、さらにまったく異なる方法で達成されました。あなたはそれを見ることができるはずです。あなたが指摘した解決策が私にとってうまくいくなら、私は今日車輪の再発明に時間を費やしません。あなたはあなたのために何でも使うことができます。. Expect 㯠ã³ã³ãã¥ã¼ã¿å´ããã®æ¨æºåºåããããã¡ã«è²¯ãããã®ä¸ã§ãã¿ã¼ã³ããããåããªãããæ¨æºå
¥åã«å¯¾ããã¼å
¥åããã¦ããã¾ãã Linuxã§ã¯ãç»é¢ã«åºåãããå
容ããã¡ã¤ã«ã«åºåããããéã«ãã¼å
¥åã®ä»£ããã«ãã¡ã¤ã«ããå
¥åããããããã¨ãã«ã¯ãã>ããããã¯ã<ãã使ããªãã¤ã¬ã¯ãã使ç¨ãã¾ãã 対話å¼ã³ãã³ãã§ã³ãã³ããèªåå®è¡ããããå ´åã«ä½¿ç¨ããã³ãã³ãã§ãã ... æå®ãããæååï¼ãâãã«å²ã¾ããæåï¼ã¨æ¨æºå
¥åã®ãã¼ã¿ã¨ãæ£è¦è¡¨ç¾ã§æ¯è¼ããä¸è´ããã¾ã§ä»¥éã®å½ä»¤ãå®è¡ãã¾ããã ããã§ã [å
¥åããããã¼]ããã¤ãã|ãã®å³å´ã«æ¸ããã³ãã³ãã«å¼ã渡ããã¨ãã§ãã¾ãã. å
ã»ã©ã®ããã«âifconâãå«ãã³ãã³ãåãå¯ä¸ã®æã¯ãtabãã¼ãæ¼ãã¨ã³ãã³ãå
¥åãè£å®ããã¾ãã å
¥åããã³ãã³ãåãå¯ä¸ã«ç¹å®ã§ããªãå ´åããtabãã¼ãã2åæ¼ããã¨ã§ãã®æååãå«ãã³ãã³ããä¸è¦§è¡¨ç¤ºã§ãã¾ãã ¨éããéã®crontabãã£ã¼ã«ãã®æ¸å¼ã¯ä»¥ä¸ã§ãã 以ä¸ã®åãã£ã¼ã«ãã«åè´ããæ¥æã«ãªãã¨ã³ãã³ããå®è¡ããã¾ãã ã§ã«ã¹ã¯ãªãã(ã¨ããããã³ãã³ã)ã§expectã®ããã«èªåå¿çããã. ã¤ã³ã¹ãã¼ã«ããã»ã¹ãèªååããå¿
è¦ãprintfããrunãã¡ã¤ã«ã§ãã®ããªãã¯ã試ãã¨ãã¨ã©ã¼ã¡ãã»ã¼ã¸ã表示ããWarning: Tried to connect to session manager, None of the authentication protocols specified are supportedãã¹ã¯ãªãããæ°ããã¿ã¼ããã«ã§éããé常ã©ããæåã§å
¥åããããã«æ±ãããã¾ãã ã§ã³ linux batch-file io-redirection 弿°ãããããã¡ã¤ã«ã«æ¸¡ãæ¹æ³ãæãã¦ãã ããã ãã¼ãèªåã§å
¥åãã. ã³ãã³ãã®åè£è¡¨ç¤º. Linuxã®ãªãã¤ã¬ã¯ãã®ä½¿ãæ¹ã¨ç¨®é¡ï¼æ¨æºåºåã»å
¥åã»ã¨ã©ã¼ããã¤ãã«ã¤ãã¦ã解説. ã§ã«ã¹ã¯ãªããå
ã§ããã®scriptã³ãã³ããè¨è¿°ãããã¨ã«ãããç¹å®ã®ãã©ã«ãã¸ä½æ¥ãã¨ã®ä½æ¥ãã°ãã¡ã¤ã«ãåºåãããã¨ãã§ãã¾ãã Linuxã³ãã³ã. echo ãã¹ã¯ã¼ã | sudo -S ã³ãã³ã > /dev/null 2>&1. ã§ã³ã¯ã³ãã³ãã®åºåå
ãããã¹ããã¡ã¤ã«ã«åãæ¿ãã以å¤ã«ããããã¨ã¯éã«ã³ãã³ãã¸ã®å
¥åå
ãããã¹ããã¡ã¤ã«ã«åãæ¿ãããã¨ãã§ããã ⦠Linux. ãã¹ã¯ã¼ãã®å
¥åãèªååããæ¹æ³ã¯ããã¤ãããã¾ãããsshpassã使ãã¨å²ã¨ç°¡åã«å®ç¾ã§ãã¾ãã ã¾ãã¯sshpassãã¤ã³ã¹ãã¼ã«ãã¾ãã sudo apt install sshpass å°å
¥ã¯å®äºã§ãã ç°å¢ã¯ubuntu16.04ltsã使ç¨ãã¦ã¾ã sshãã°ã¤ã³ãèªååãã¦ã³ãã³ããå®è¡ãã sshpassãå©ç¨ã ãdelãã³ãã³ããä¾ã«ã¨ãã¨ããYããã¼ãèªåã§å
¥åãããã«ã¯ã. ã³ãã³ãã®è£å®. echo ãã¹ã¯ã¼ã | sudo -S ã³ãã³ã. 1 èªååããããã¨ãã«ãyããå
¥åãããã³ãã³ããéªéãããï¼ 2 æ¨æºå
¥åã« ãyã ãæ¸¡ãï¼ 3 1 ã³ãã³ãã§ y ãä½åº¦ãå
¥åããå¿
è¦ãããå ´åã¯â¦ï¼ ã§ã«ã¹ã¯ãªããã§ãã¼ãã¼ãããå
¥åãåãä»ããå¿
è¦ãããã¨ããããã ãã®ãã¼ã¸ã§ã¯ãã®æ¹æ³ããµ [â¦]