最近喜歡刻一些互動的小工具,程式碼將需求分析後在 terminal 與 user 互動,confirm 內容後動作是常見的,這邊紀錄一下三個語言的 prompt 方法
prompt.php
| echo 'Are you sure? [y/n]: '; |
| |
| $handle = fopen('php://stdin', 'r'); |
| $answer = trim(fgets($handle)); |
| |
| if ($answer === 'y') { |
| echo 'Yes!'.PHP_EOL; |
| } else { |
| echo 'Canceled!'.PHP_EOL; |
| } |
| |
| fclose($handle); |
prompt.js
| const readline = require('readline'); |
| |
| const rl = readline.createInterface({ |
| input: process.stdin, |
| output: process.stdout |
| }); |
| |
| rl.question('Are you sure? [y/n]: ', (answer) => { |
| if (answer.trim() === 'y') { |
| console.log('Yes!'); |
| } else { |
| console.log('Canceled!'); |
| } |
| |
| process.exit(); |
| }); |
| #!/bin/bash |
| |
| read -p 'Are you sure? [y/n]: ' answer |
| |
| if [[ $answer == 'y' ]]; then |
| echo "Yes!" |
| else |
| echo "Canceled!" |
| fi |