假设我写了以下脚本:
#!/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
但我不明白为什么首先会发生错误。
答案 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;}