2015-06-15 70 views
1

如何將文件的每個名稱從目錄打印到字符串中並製作新腳本?打印文件名到bash中的腳本中

打印每個文件名

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

但是當我試着和$我喜歡這個打印字符串的其餘部分似乎並沒有工作!

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或反斜槓時也不起作用。

+0

命令'printf'及其參數必須在同一行。 –

+0

'ls文件名*'有什麼意義?只需使用'filenames *'並保存一個進程即可。 – Jens

回答

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