Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
回显包含bash中可执行脚本的文件内容_Bash_Shell_Echo_Cat - Fatal编程技术网

回显包含bash中可执行脚本的文件内容

回显包含bash中可执行脚本的文件内容,bash,shell,echo,cat,Bash,Shell,Echo,Cat,当我向控制台写入时,例如: echo -e "directory content: \n $(ls -l)" 我会得到这样的东西: directory content: -rw-rw-r--. 1 user user 0 Apr 9 10:28 file.txt 这没关系,但我希望在一个文件中包含“目录内容:\n$(ls-l)”,并编写bash脚本,该文件将在哪里读取并使用已执行的脚本将其内容回送到另一个文件 我写了这个简单的脚本 #!/bin/bash FILE=$(<fil

当我向控制台写入时,例如:

echo -e "directory content: \n $(ls -l)"
我会得到这样的东西:

directory content:
-rw-rw-r--. 1 user user    0 Apr  9 10:28 file.txt
这没关系,但我希望在一个文件中包含“目录内容:\n$(ls-l)”,并编写bash脚本,该文件将在哪里读取并使用已执行的脚本将其内容回送到另一个文件

我写了这个简单的脚本

#!/bin/bash
FILE=$(<file.txt)
echo -e "$FILE"
有没有办法获得正确的结果?

文件=$(您可以尝试:

FILE=$(<file.txt)
bash-3.2$ cat file.txt
directory content: \\n $(ls -l)


bash-3.2$ MYFILE=$(<file.txt)
bash-3.2$ eval echo -e "$MYFILE"
directory content:
 total 8 -rw-r--r-- 1 fti staff 32 09 avr 12:40 file.txt
bash-3.2$cat file.txt
目录内容:\\n$(ls-l)

bash-3.2$MYFILE=$(您正在将代码与数据混为一谈:不要这样做。相反,制作一个shell脚本和源代码或执行它

$ cat file.sh
echo directory content:
ls -l

$ . file.sh
directory content:
-rw-rw-r--. 1 user user    0 Apr  9 10:28 file.txt

$ MYFILE=$( bash file.sh )
$ echo "$MYFILE"
directory content:
-rw-rw-r--. 1 user user    0 Apr  9 10:28 file.txt

@tuxuday:从字面上看
目录内容:\n$(ls-l)
,据我所知。这并不完全是我想要的。该txt文件的主要用途是文档。例如,我想记录程序,该文档应该包含文件列表。但在不久的将来,可以添加更多的文件,我不想手动编辑文档,而是简单地运行脚本重新生成它。我不确定我是否解释得很清楚。您可能希望研究使用支持这种模板的适当文档生成系统,而不是尝试在
bash
中破解某些东西。
$ cat file.sh
echo directory content:
ls -l

$ . file.sh
directory content:
-rw-rw-r--. 1 user user    0 Apr  9 10:28 file.txt

$ MYFILE=$( bash file.sh )
$ echo "$MYFILE"
directory content:
-rw-rw-r--. 1 user user    0 Apr  9 10:28 file.txt