在bash中将文件名打印成脚本

时间:2015-06-15 11:53:42

标签: bash printf echo

如何将目录中的每个文件名打印成字符串并制作新脚本?

打印每个文件名

for i in `ls new_manifest*`; do echo $i; done 

但是当我尝试使用$ i打印其余字符串时,这似乎无法正常工作!

for i in `ls filenames*`; do
 printf
 '#!/bin/bash
 #$ -cwd
 #$ -j y
 #$ -S /bin/bash
 #$ -pe threaded 8

 $HOME/bin/program -vv -c $HOME/program.key -d $i --max 10' > $HOME/Scripts/$i.sh; done
当我在$ i之前使用echo或反斜杠时,

也不起作用。

1 个答案:

答案 0 :(得分:2)

您需要将printf的格式保留在同一行,并将$i保留在单引号之外:

for i in filenames*; do
 printf '#!/bin/bash
  #$ -cwd
  #$ -j y
  #$ -S /bin/bash
  #$ -pe threaded 8

  $HOME/bin/program -vv -c $HOME/program.key -d '"$i"' --max 10\n'
 done
相关问题