あなたは、これらの線に沿って何か(近いbashの構文に、この擬似コードを検討し、任意の構文エラーはご容赦)でそれを行うことができます:
#!/bin/bash
# $1 = iterations left
# $2 = final output file
recursive_gzip()
{
if
[[ "$1" -gt 0 ]]
then
gzip -d | recursive_gzip $(($1 - 1)) "$2"
else
gzip -d > "$2"
fi
}
recursive_gzip 18 "file.txt" <"file.txt.gz"
私は、リダイレクトを使用してcat
を交換しますのでご注意ください。
あなたは、圧縮/解凍のために同じ機能を共有するためにアイデアを一般化し、実際には2
#!/bin/bash
# $1 = iterations left
# $2 = final output file
recursive_pipe()
{
if
[[ "$1" -gt 0 ]]
then
"${@:3}" | recursive_pipe $(($1 - 1)) "$2" "${@:3}"
else
"${@:3}" > "$2"
fi
}
# Create gzipped file
recursive_pipe 18 "file.txt.gz" gzip <"file.txt"
# Uncompress gzipped file
recursive_pipe 18 "file.txt" gzip -d <"file.txt.gz"
関数を作成しますか? – 123
これには理由もありますか? gzipを繰り返し実行したくないと思っていますが、これは単なる例ですか? – 123
前のコマンドの出力を次のコマンドの入力として使用してn回コマンドを実行する方法の例として、これを使用していました。私はそれがコマンドラインから実行できるかどうか疑問に思っていました。 –