如何将函数嵌入到read -p命令中

时间:2018-02-27 09:42:44

标签: bash

我想知道是否可以在read -p命令中放置一个函数。

flashRed="\033[5;31;40m"
red="\033[31;40m"
none="\033[0m"

question(){
  echo -e $none"Do you wan to remove"  $flashRed"$1?" $none
}
 read -p $question response

2 个答案:

答案 0 :(得分:2)

我认为你的问题的更好的表述将是

  

是否可以将bash函数的输出作为$()的参数提供。

答案是肯定的。使用替换 read -p "$(question argument) " response

argument

其中$1是您的函数将作为"$(question "$file") "访问的字符串。参数可以是变量,例如-p

但即使不可能,你也可以模拟echo -en "${none}Do you wan to remove ${flashRed}argument${none}? " read response 的作用。它只是打印给定的字符串而没有换行符。

-n

echo停用echo的结尾换行符。

甚至更好(因为并非所有-e实施都支持-nprintf "$none%s $flashRed%s$none? " "Do you wan to remove" "argument" read response ):

I think it is better to generate output content as JSON. That make data more readable.

答案 1 :(得分:0)

这在尝试时起作用了。

flashRed="\033[5;31;40m"
red="\033[31;40m"
none="\033[0m"

question(){
  echo -e $none"Do you wan to remove"  $flashRed"$1?" $none
}
 read -p "$(question $1) " response