最近喜歡刻一些互動的小工具,程式碼將需求分析後在 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();
});
prompt.sh
#!/bin/bash
read -p 'Are you sure? [y/n]: ' answer
if [[ $answer == 'y' ]]; then
echo "Yes!"
else
echo "Canceled!"
fi