0

我做了这个脚本,应该接收一个或多个参数,这些参数都是目录,它必须浏览这些目录(一个接一个)并做一些操作。如果参数是1(只有一个目录),则操作工作正常,如果传递了多个参数,我应该如何修改我的脚本以使其工作1如果我希望它同时在23目录中执行相同的操作示例?谢谢

#!/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
#!/bin/sh

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

首先,如果您使用 bash,请使用 bash shebang (#!/bin/bash)。然后使用

#! /bin/bash

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

迭代命令行参数(在您的情况下为目录)

于 2013-02-19T16:04:35.983 回答