首页 > 解决方案 > 从另一个 bash 脚本调用 bash 脚本函数不显示我的 shell 命令

问题描述

我有 2 个 bash 脚本,一个调用另一个,但取决于我如何调用它,它会显示或不显示我的 ls 命令。

脚本2.sh

#!/bin/bash
function test() {
    i=0
    while IFS= read -r line; do
        IFS=',' read -ra ITEM <<<"$line"
        printf "\n[${i}] ${ITEM}"
        ((i = i + 1))
    done <<<$(ls $1)

    printf "\nPress any other keys to abort.\n\n" 
    read -p "Please enter your selection: " ANSWER 
    echo $ANSWER
}

script1a.sh 工作

#!/bin/bash
. ./scripts/bash/script2.sh
PARAM='-lag'
(test $PARAM)

回报:

[0] total 5  
[1] drwxr-xr-x 1 1049089    0 Oct 29 09:10 .  
[2] drwxr-xr-x 1 1049089    0 Oct  9 23:11 ..  
[3] -rw-r--r-- 1 1049089   87 Jul  6 14:19 .eslintignore  
[4] -rw-r--r-- 1 1049089  449 Jul 10 13:56 .forceignore  
[5] drwxr-xr-x 1 1049089    0 Oct 29 09:11 .git  
Press any other keys to abort.  

Please enter your selection:

script1b.sh 失败

#!/bin/bash
. ./scripts/bash/script2.sh
PARAM='-lag'
myanswer=$(test $PARAM)

退货:
请输入您的选择:

任何人都知道为什么会出现这种奇怪的行为以及如何解决它?提前致谢。

标签: bash

解决方案


推荐阅读