回显 ls 命令的所有输出

回显 ls 命令的所有输出

我的文件夹中有以下文件:

a.jpg b.jpg c.jpg

我有以下脚本:

#!/bin/bash
echo $1

如果我运行:

script.sh $(ls)

我的输出是:

a.jpg

但我想成为:

a.jpg b.jpg c.jpg

那么,为什么不echo打印所有输出ls

答案1

在您的脚本中,您明确要求仅回显第一个参数:

echo $1

如果你要问第二个论点

echo $2

您将获得b.jpg输出。

echo $*您可以使用或获取所有文件echo "$@"

另一个选择是确保将完整的输出ls打包在第一个参数中。您可以通过在其周围添加引号来实现。

script.sh "$(ls)"

相关内容