我的文件夹中有以下文件:
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)"