bash - 从另一个 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)
退货:
请输入您的选择:
任何人都知道为什么会出现这种奇怪的行为以及如何解决它?提前致谢。
解决方案
推荐阅读
- angular - 将 ag 网格表转换为 PDF 文件
- android - 如何用一个弯曲端画一条线
- oracle - 如何在 HIVE 中使用 INSTR?
- c# - 活动目录远程访问
- ruby-on-rails - Ruby Marshallng 是否有可能与不同版本的 ruby 一起工作?
- javascript - Node.js - Javascript - 返回异步变量
- android - 如何将对象响应数组转换为 Ratrofit
- javascript - 更改 backgroundImage 会导致内存泄漏(电子)
- java - 如何在 weblogic12c 中更改 jdk 版本
- validation - Yii2:条件验证在重新提交时不起作用