0

このスクリプトは、1つ以上のパラメーターを受け取る必要があり、それらのパラメーターはすべてディレクトリーであり、それらのディレクトリーを(1つずつ)参照していくつかの操作を実行する必要があります。パラメータが1(1つのディレクトリのみ)の場合、操作は正常に機能します。複数の1パラメータが渡された場合にスクリプトが機能するようにスクリプトを変更するにはどうすればよいですか?例2:または3ディレクトリで同時に同じ操作を実行する場合はどうすればよいですか?ありがとう

#!/bin/sh
cd $1
for file in ./* # */
do    
  if [[ -d $file ]]
  then
    ext=dir
  else
    ext="${file##*.}"
  fi
  mv "${file}" "${file}.$ext"
done
4

2 に答える 2

0

まず、bash を使用している場合は、bash shebang (#! /bin/bash) を使用します。次に使用します

#! /bin/bash

for d in "$@"
do
   echo "Do something with $d"
done

コマンドライン引数(あなたの場合はdirs)を繰り返します

于 2013-02-19T16:04:35.983 に答える
0
#!/bin/sh

for dir in "$@"; do                     
  for file in "$dir"/*; do
    echo "Doing something with '$file'"
  done
done
于 2013-02-19T16:10:31.100 に答える