1

我知道我可以将参数传递给 bash 函数,例如

function output () {
  echo 'text' > text.txt;
  echo $1 >> text.txt;
  echo 'more text' >> text.txt;
}
output something;

但我实际上需要传递另一个脚本或程序的输出并将它放在一个变量中,所以我可以调用函数

output $(ls);

...并将 ls 的输出放在函数中的一个变量中。那可能吗?如何?

或者我至少可以回显函数的每个输入吗?

4

3 回答 3

2

尝试引用论点:

output "$(ls)";

或将您的功能更改为

function output () {
  echo 'text' > text.txt;
  echo "$@" >> text.txt;
  echo 'more text' >> text.txt;
}
于 2013-10-29T21:20:00.207 回答
0

有可能的。

考虑这个十进制到十六进制的函数,它接受 printf 的输出,并将其存储在一个名为 NUM 的 var 中。

d2h()
{
  NUM=$(printf "%x\n" $1)
  echo $NUM
}
于 2013-10-29T20:57:40.503 回答
0
#!/bin/bash 
output=`ls -larht` 
/bin/echo -e "$output"
于 2013-10-29T20:56:24.000 回答