如果我有一个程序将用户提供的值乘以 10,我如何编写另一个 bash 脚本,该脚本已传递参数并获取这些参数并收集另一个程序的输出并将其组织到一个表中?
例如:
[user]$ table 1 5
#
#Value Result
1 10
5 50
[user]$
答案1
#!/bin/sh
tenTimes(){
expr "$1" \* 10
}
table(){
printf '%s\t%s\n' \#Value Result
for a; do
printf '%s\t%s\n' "$a" "$(tenTimes "$a")"
done
}
table 1 5
输出:
#Value Result
1 10
5 50
答案2
您可以通过具有绝对或相对路径的 shell 解释器来实现;
/bin/sh /usr/local/bin/script
/usr/sbin/ksh ~/script
也许您想使用一些类似于包含库的函数;
#!/bin/sh
func_a() { echo $(($1%42)); }
在另一个文件中:
#!/bin/sh
. ~/path/to/func_a_file
func_a
或者您可能想在将结果分配为变量的同时调用脚本:
var1=$(~/path/to/script)