当调用另一个脚本时,我无法执行bash命令

时间:2017-12-01 01:32:41

标签: bash shell

我有点卡在这里,

这些是我的代码

#script 1
#!/bin/bash
echo ""
$(ls -l)
#script 2
#!/bin/bash


echo ""
iwconfig
#script 3    
#!/bin/bash

PATH=$(pwd)

SC1=${PATH}/script1.sh 
SC2=${PATH}/script2.sh 

echo ""
read -p "Hi, whats your name? " NOME
echo ""
read -p "Glad to meet, ${NOME}, are you fine? [S/N] " FINE

funcao(){
    if [[ "${FINE}" = "S" || "${FINE}" = "s" ]]
    then    
        ${SC1} &
        wait
        echo -e "\nGreat, ${NOME}, me too!"
    elif [[ "${FINE}" = "N" || "${FINE}" = "n" ]]
    then
        ${SC2} &
        wait
        echo -e "\nAh, ${NOME}, thats sad :("
    else
        echo "Invalid answer, ${NOME}!"
    fi
}   


funcao

我不知道为什么它一直给我这个输出

Output

我做错了什么?

我只是测试我的技能,不需要成为一个重要的命令,只需要它可以工作。

我是linux的新手,包括shell / bash /等。试着学习,可能犯了一些愚蠢的错误......好吧....我的生活故事......

谢谢!

1 个答案:

答案 0 :(得分:1)

在脚本3中,您正在设置PATH。这个变量确定bash在哪里找到可执行文件,通过设置它你阻止bash找到ls二进制文件,所以你得到了这个错误,使用该变量的另一个名称,你会没事的。另请参阅手册的 Shell变量部分以获取其他特殊变量。 https://linux.die.net/man/1/bash