シェルスクリプトでcatコマンドを終了する方法

シェルスクリプトでcatコマンドを終了する方法

コマンドshell scriptを使用してファイルを生成するスクリプトを作成しました。私のシェルスクリプトは次のとおりです。cattr

#!/bin/bash
printf "generating random file > plaintext \n"
cat -v | tr "a-z" "b-y" < plaintext  > generatedtext 

スクリプトの実行中はcatコマンドは終了せず、CTRL+ を使用してZシェルスクリプトの実行を停止すると、コマンドは終了しません。内容を見ると -generatedtext最初の文字が変更され(基準としてtr)、残りの文字はすべてプレーンテキストと同じです。

たとえば、内容plaintext

これはリンゴです。

シェルが実行された後、コンテンツgeneratedtext

xこれは謝罪です。

ベストアンサー1

trプレーンテキストファイルを読んだ後は、次のことを行う必要があります。

#!/bin/bash
printf "generating random file > plaintext \n"
cat -v < plaintext | tr "a-z" "b-y" > generatedtext

あなたの質問は次にplaintextリダイレクトされました。あるいは、サブシェルからパイプされたコマンドを実行することもできます。trcat

#!/bin/bash
printf "generating random file > plaintext \n"
( cat -v | tr "a-z" "b-y" ) < plaintext  > generatedtext 

おすすめ記事