来自不同文件和使用pdftk的linux脚本变量
我是脚本新手,但尝试了一下,遇到了一些我似乎无法解决的问题。
我想要做的是使用pdftk捕获不同的pdf文件,我想要猫的文件正在从不同的程序馈入,该程序能够触发脚本文件,但无法发送参数。 因此,我创建了两个.txt文件,一个文件名和一个文件名。 设置文件必须告诉我的脚本它是否应该创建一个新文件,文件名应该告诉我的脚本将什么文件放入大pdf文件中。
设置和文件名文件都被读入变量,并通过使用回声我可以看到这些变量的值是正确的,但我不能使用它们出于某种原因,我不明白。
这是我的脚本:
#!/bin/bash
#on Date Who Call Remarks
# ------- ---------- --- ------ --------------------------------------------
# 1.0 28-07-2014 AAS ------ New script to combine pdf files.
#
# ==========================================================================
#
#Changelog:
#
#
#
# Locvar:
file=$(cat "/home/scanning/finloon/concatfile.txt")
setting=$(cat "/home/scanning/finloon/concatsetting.txt")
echo $file
echo $setting
removefile()
{
echo "remove combine.pdf"
rm -f -r /home/scanning/finloon/combine.pdf
rm -f -r /home/scanning/finloon/workfile.pdf
}
makefirst()
{
echo "make first combine.pdf"
pdftk /home/scanning/janssen/linked/44/$file cat output combine.pdf
}
copyfile()
{
echo "copy to workfile.pdf"
cp /home/scanning/finloon/combine.pdf /home/scanning/finloon/workfile.pdf
}
combinefile()
{
echo "combine files"
pdftk /home/scanning/finloon/workfile.pdf /home/scanning/janssen/linked/44/$file cat output combine.pdf
}
if [ "$setting" == "yes" ];
then
removefile
makefirst $file
else
copyfile
combinefile $file
fi
exit
concatsetting.txt的内容= yes(unix文件,不包含空格)
concatfile.txt的内容= 1.pdf(unix文件,不包含空格)
现在,当我运行我的脚本时,我期望它能够执行if语句中的第一个命令,因为$ setting的值为yes,但它不会。 我怀疑它与我用作变量的字符串有关,因为当我将if语句更改为使用变量$ 1并且我通过concatcmr.sh启动脚本时,它可以工作,但之后我也无法使用存储在文件变量中的文件名。 在这里我似乎有同样的问题,因为如果我将该变量更改为$ 2并启动我的脚本为concatcmr.sh是1.pdf一切正常。
现在,如果我运行脚本,这是我得到的输出:
$ concatcmr.sh
次数1.pdf
是
复制到workfile.pdf
cp:不能统计`/home/scanning/finloon/combine.pdf':没有这样的文件或目录
合并文件
错误:无法找到文件。
错误:无法打开PDF文件:
/home/scanning/finloon/workfile.pdf
错误:无法找到文件。
错误:无法打开PDF文件:
遇到错误。 没有输出创建。
完成。 输入错误,所以没有输出创建。
$
虽然$设置的内容为yes,但if语句无法识别此内容并跳到else语句。 我无法弄清楚为什么,一定是愚蠢的,但我找不到它。
在此先感谢您的帮助!
干杯。
链接地址: http://www.djcxy.com/p/46957.html上一篇: linux script variables from different files and using pdftk
下一篇: Merging Pdfs