为什么不使用bash文件?

时间:2016-08-03 19:01:01

标签: bash shell

我现在看起来更像是一个主题(例如:Bash: How _best_ to include other scripts?,它也没有尝试过它们。

我还应该打电话给" create_sample_html.sh "文件位于" test.sh "中的同一目录中文件。

但无论我怎样尝试,当你跑步时都没有任何反应。

但是我试图在Docker容器中运行脚本时返回以下错误消息:

  

./ create_sample_html.sh:没有这样的文件或目录

     

create_php_info:找不到命令

     

create_html:找不到命令

test.sh:

#!/bin/bash

source ./create_sample_html.sh

IP=$(ip route get 1 | awk '{print $NF;exit}')

create_php_info "<path-to-file>/index.php"
create_html ${IP} "test1" "<path-to-file>/index.html"

exit 0

create_sample_html.sh:

#!/bin/bash
create_html() {
    touch $3
    echo -e "<!Doctype html>" >> $3
    echo -e "<html>" >> $3
    echo -e "\t<head>" >> $3
    echo -e "\t\t<meta charset=\"utf-8\">" >> $3
    echo -e "\t\t<title>Server $1 VHost: $2</title>" >> $3
    echo -e "\t</head>" >> $3
    echo -e "  " >> $3
    echo -e "\t<body>" >> $3
    echo -e "\t\t<h1>Server $1 VHost: $2</h1>" >> $3
    echo -e "\t</body>" >> $3
    echo -e "</html>" >> $3
}

create_php_info() {
    touch $1
    echo -e "<?php phpinfo(); ?>" >> $1
}
exit 0

文件权限:

-rwxrwxr-x 1 user user  480 aug    3 20:48 create_sample_html.sh
-rwxrwxr-x 1 user user  332 aug    3 20:37 test.sh

1 个答案:

答案 0 :(得分:0)

create_sample_html.sh中,删除exit 0

否则,test.sh会在您采购时执行exit 0。在同一步骤中,您也可以从源文件中删除#!/bin/bash,因为它是不必要的,因为无论如何都将使用父脚本的shell执行这些函数。