我想给一个变量(这里称为的内容复制var
)到文件中。
该文件的名称存储在另一个变量destfile
。
我有这样的问题。 以下是我已经试过:
cp $var $destfile
我也试过同样的事情用dd命令显然,外壳认为$var
指的是一个目录,所以告诉我,目录可能不会被发现。
如何解决这个问题?
我想给一个变量(这里称为的内容复制var
)到文件中。
该文件的名称存储在另一个变量destfile
。
我有这样的问题。 以下是我已经试过:
cp $var $destfile
我也试过同样的事情用dd命令显然,外壳认为$var
指的是一个目录,所以告诉我,目录可能不会被发现。
如何解决这个问题?
使用echo
命令:
var="text to append";
destdir=/some/directory/path/filename
if [ -f "$destdir" ]
then
echo "$var" > "$destdir"
fi
该if
测试, $destdir
表示文件。
该>
追加截断文件之后的文本。 如果你只想在文本追加$var
现有内容的文件,然后使用>>
来代替:
echo "$var" >> "$destdir"
该cp
命令用于复制文件(文件)的,不写文本文件。
echo
有问题是否var
包含有类似-e
,它会被解释为标志。 另一种选择是printf
,但printf "$var" > "$destdir"
将扩大在变量任何转义字符,所以如果变量包含反斜杠的文件内容不匹配。 然而,由于printf
唯一解释反斜杠作为逃逸格式字符串,你可以使用%s
格式说明存储精确的变量内容到目标文件:
printf "%s" "$var" > "$destdir"
以上,如果你的变量工作的答案都不对:
-e
-n
-E
\
后跟n
所以他们不能任意字符串内容所依赖。
在bash中,你可以使用“这里的字符串”为:
cat <<< "$var" > "$destdir"
如果我理解你的权利,你要复制的$var
在一个文件中(如果它是一个字符串)。
echo $var > $destdir
当你说“复制一个变量的内容”,这是否变量包含文件名,或者它包含文件的名称?
我假设你的疑问, $var
包含要复制到该文件的内容 :
$ echo "$var" > "$destdir"
这将呼应$ VAR值存入一个名为$ DESTDIR。 注意引号。 非常重要的是有“$ VAR”引号括起来。 亦作“$ DESTDIR”如果有在名称中有空格。 追加它:
$ echo "$var" >> "$destdir"