将变量的内容写入变量目录中的变量文件

时间:2017-07-08 16:25:28

标签: bash

假设我写了以下脚本:

#!/bin/sh
TEXT="hello"
DIR="test"
FILE="bla.txt"
echo $TEXT > $DIR/$FILE

运行时,我收到以下错误:

test.sh: line 5: test/bla.txt: No such file or directory

但如果将最后一行改为:

echo $TEXT > $FILE

我没有收到错误。

我知道我可以解决它并且做到:

FILE_TO_WRITE_TO=$DIR/$FILE
echo $TEXT > $FILE_TO_WRITE_TO

但我不明白为什么首先会发生错误。

1 个答案:

答案 0 :(得分:2)

以下命令会出现No such file or directory错误,因为test目录不存在,如果它不是目录,则为Not a directory

echo "hello" > test/bla.txt

如有必要,创建目录,并进行错误管理。

mkdir -p "$DIR" || { echo "failed to mkdir $DIR"; exit 1;}
echo "$TEXT" > "$DIR/$FILE" || { echo "failed to open $DIR/$FILE for writting"; exit 1;}