创建一个使用cat并具有3个参数的简单bash脚本

时间:2016-08-01 07:56:29

标签: linux bash

我有这个bash命令用于捕获两个java程序的输出,每个程序将1个参数放入一个文件中:

cat file.ext | java program1 argument1 | java program2 argument2 > argument3

argument3是可选的,如果没有提供,它应该只是file.srtd

如何为此创建bash脚本?

3 个答案:

答案 0 :(得分:2)

如果未使用语法${var:-default}设置变量,则可以指定变量的默认值。

java program1 "$1" < file.ext | java program2 "$2" > "${3:-file.srtd}"

如果变量包含特殊字符,您还应该记住引用变量。

答案 1 :(得分:1)

在bash中,变量$nn th 参数。变量$#是用户给出的参数数量。

所以你可以这样做:

#!/bin/bash

arg3=$3
if (( $# < 3 )) ; then
    arg3="file.srtd"
fi;

cat file.ext | java program1 $1 | java program2 $2 > $arg3

您可以查看shell parametersshell parameter expansion了解详情。

答案 2 :(得分:0)

你可以这样做:

file="$3"
[ -z "$file" ] && file="file.srtd"
#then use `file` for the rest of the program.