2つの拡張子を持つファイル名を解決するシェルスクリプト。両方の拡張子を持つファイルがある場合は、スクリプトを呼び出します。それ以外の場合は失敗します。

2つの拡張子を持つファイル名を解決するシェルスクリプト。両方の拡張子を持つファイルがある場合は、スクリプトを呼び出します。それ以外の場合は失敗します。

2つの拡張子(.txtと.ctl)を持つファイルがあるかどうかを確認し、ファイルに両方の拡張子がある場合はスクリプトを呼び出す必要があります。それ以外の場合、操作は失敗します。いくつか試してみましたが、期待どおりに動作しません。誰でも私を助けることができますか?

ベストアンサー1

#!/bin/bash

# Assuming the directory is passed to us as an argument...
DIR="$1"
SCRIPT=/path/to/the/other/script.sh

COUNT=0
for i in "$DIR"/*.txt "$DIR"/*.ctl ;do
  if [ -f "$i" ] ;then # this is a regular file
    ((COUNT++))
    "$SCRIPT" "$i"
  fi
done

if [ $COUNT -eq 0 ] ;then
   exit 1 # No .txt or .ctl files were found.
fi

質問はあまり明確ではないので、特定のディレクトリ内のすべてのファイルにこれら2つの拡張子があることを確認したいとします。

おすすめ記事