为什么在下面的脚本上调用 cd 命令后,第二个回声线不起作用?
#!/bin/bash
LOGFILE='my.log'
echo 'log line 1' >> $LOGFILE
cd folder-x
echo 'log line 2' >> $LOGFILE
没有cd命令它可以工作吗?
#!/bin/bash
LOGFILE='my.log'
echo 'log line 1' >> $LOGFILE
#cd folder-x
echo 'log line 2' >> $LOGFILE
答案 0 :(得分:1)
LOGFILE
不是文件变量,它只是一个文件名称。即便如此,它只是文字。
所以会发生什么:
echo 'log line 1' >> $LOGFILE
写入当前目录中的my.log
,因为这会转换为:
echo 'log line 1' >> my.log
然后我们
cd folder-x
和
echo 'log line 2' >> $LOGFILE
扩展为:
echo 'log line 2' >> my.log
正是这样 - 在 new 当前目录中。
你可以在LOGFILE
中包含当前目录,因此将来的日志语句附加在那里,如下所示:
#!/bin/bash
LOGFILE="`pwd`/my.log"
echo 'log line 1' >> $LOGFILE
cd folder-x
echo 'log line 2' >> $LOGFILE
答案 1 :(得分:0)
它将创建两个日志文件。一个你运行脚本的地方。另一个在文件夹-x。