окружите функцию для запроса и вход возврата

Я пытаюсь записать функцию помощника для использования в сценарии удара, чтобы взять переменную строку приглашения и возвратить значение вводы данных пользователем. То, что я имею, сидит и ждет пользователя для ввода значения, не отображая подсказку сначала, которая является озадачивающей. Это также хранит эхо в возвращаемом значении ($foo) и не удерживает чтение значения с изодромной с предварением переменной.

!#/bin/bash
pid=0
promptValue() {
  msg="$1"
  echo -e "$msg"
  read val
  pid=$val
}

foo=$(promptValue "type something")

Править: Для любого, кто мог бы хотеть использовать это в будущем для их собственного использования, это - полный (функциональный) сценарий, который разработан для отправки электронного письма (в этом случае к моему сотовому телефону) для сообщения мне, когда длительный процесс завершается. Я уверен, что должен быть лучший способ сделать это, но meh. :-) (я записал им как это, чтобы использоваться в библиотеке функций удара в другом месте.)

#!/bin/bash

promptValue() {
 read -p "$1"": " val
 echo $val
}

alertme() {
 if [ -z "$email" ]; then
   email=$(promptValue "Enter email")
 fi

 if [ -z "$email" ]; then 
   echo "ERROR: No email set!"
   exit 1
 fi

 if [ -z "$pid" ]; then
   pid=$(promptValue "Enter pid")
 fi

 if [ -z "$pid" ]; then 
   echo "ERROR: No pid set!"
   exit 1
 fi

 ps -ef | grep $pid | grep -v grep > /dev/null 2>&1
 while [ $? eq 0 ]; do
  sleep 10
  ps -ef | grep $pid | grep -v grep > /dev/null 2>&1
 done

 echo "Process Complete" | mailx -s "Process Complete" $email
}

alertme

Еще раз спасибо все!

5
задан Jens 19 May 2012 в 18:15
поделиться