我有一个文件,其中写有以下文字 -
hello h.i. b-y-e
我想将此值读入变量。我已经定义了一个函数 -
function read() { p=`cat $1`; echo "$p"; $2=`echo "$p"`; }
我收到以下错误 -
hello h.i. b-y-e
-bash: v=hello: command not found
然而,当我这样做时 -
p=`cat $filename`
text=`echo "$p"`
我有所需的字符串文字。有人可以解释一下行为上的差异以及实现我想做的事情。
答案 0 :(得分:1)
查看{/ 3}}在shell上下文中的含义
将变量存储在变量中的所有操作都是
fileContent="$(<input-file)"
printf "%s\n" "$fileContent"
hello h.i. b-y-e
(或)如果您认为它不配2行,只需使用单行
printf "%s\n" "$(<input-file)"
(或)使用
功能function getFileContents() {
local input=$1
printf "%s" "$(<input)"
}
newVariable="$(getFileContents input-file)"
printf "%s\n" "$newVariable"
hello h.i. b-y-e
(和)如果要求足够糟糕,可以将变量传递给函数,例如
unset newVariable
function getFileContents() {
local input=$1
declare -n var=$2
var="$(<$input)"
}
getFileContents file newVariable
printf "%s\n" "$newVariable"
hello h.i. b-y-e