如何将目录中的每个文件名打印成字符串并制作新脚本?
打印每个文件名
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或反斜杠时,也不起作用。
答案 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