次のシェルスクリプトは何をしますか?

次のシェルスクリプトは何をしますか?
#!/bin/bash
echo " Enter the name of your directory. You should enter the absolute path to the directory if it is not found in the current directory!"
read location
echo $location
filecount=$( find $location –type f –name "*.txt" -size -4K)
echo $filecount

答え1

  • echo " Enter the name of your directory. You should enter the absolute path to the directory if it is not found in the current directory!"- テキスト印刷
  • read location- テキストを入力して変数に保存することを期待します。$location
  • echo $location- 変数の印刷$location
  • filecount=$(...)- コマンドの出力を変数に保存する$filecount
  • find $location –type f –name "*.txt" -size -4K- フォルダ内の名前が「.txt」で終わり、サイズのあるファイルを検索します$location(注:スクリプトにエラーがあります。小文字でなければなりません)。type f-name "*.txt"-size 4-size 4kk
  • echo $filecount- 結果の印刷

TL; DRはフォルダパスを尋ね、長さ4 KBのファイルを探します。そして印刷してみてください

変数名で判断すると、filecount作成者はおそらく複数のファイルをインポートしたいので、次のようにコマンドを更新する必要があります。

filecount=$(find $location –type f –name "*.txt" -size 4k | wc -l)

だから私は試験に合格したのだろうか?

答え2

上記のスクリプトは、サイズが4 KB未満でファイル名のサフィックスを持つファイルのパス名を見つけるために使用されます.txt

$location変数拡張には引用符がないため、スペースなどを含む値は処理されません。また、パス名を単一の文字列として保存するため、パス名にスペースや改行文字などが含まれている場合は、パス名を計算することは困難です。

また見なさい:

関連情報