我想知道是否可以在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
答案 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
实施都支持-n
和printf "$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