Ubuntu bash脚本输出正确的值 - 脚本调用另一个脚本

时间:2017-06-05 11:57:27

标签: bash ubuntu

我有一个调用另一个脚本的脚本,但脚本的输出似乎是错误的。以下是我的代码:

print_output.sh

#!/bin/bash
echo $1
total=$(eval $1 | awk '{sum+=$1} END {print sum}')
echo "Total is $total"

try.sh

#!/bin/bash
./print_output.sh "ssh $1 'cd /somelocation/logs; cat data-$1.txt' | grep ..."

Usuage is: ./try.sh ukdry-01

我希望输出为:

uk

" Total是11"在这种情况下。但输出显示为" cat data.txt"。

我哪里错了?我希望输入是" ukdry-01"。 " cat data.txt"是一个从print_output.sh评估(即eval $ 1)并在脚本中执行的命令。

data.txt包含例如

1 AUTH
2 AND
8 BOOLEAN

这个想法是打印总数。该脚本将ssh输入到主机名即ukdry-01的用户,通过cat转到data-ukdry-01.txt,然后注销并对找到的数据执行grep。过滤的数据被送入print_output.sh,它们都是整数,并打印出第一列的总和。用法必须是脚本名称,即./try.sh ukdry-01,在内部调用./print_output,然后调用ssh命令等。

1 个答案:

答案 0 :(得分:0)

以下是对我有用的内容:

try.sh
#!/bin/bash
./print_output.sh $@ "ssh $1 'cd /somelocation/logs; cat data-$1.txt' | grep ..."

Usuage is: ./try.sh ukdry-01

$ @复制位置参数,我可以将ukdry-01用作$ 1.