小编Jam*_*rne的帖子

BASH 我想解释一下 if-then-else 行为

我有这个简短的 if-then-else 脚本:

for INV in "$(ls np4178/*pdf)" ;\
do INVNUMB="$(pdfgrep -ho 'IN[0-9]{6,6}' $INV)" ; \
if [[ -z ${INVNUMB+x} ]]; \
then \
  echo "\n$INVNUMB" ; \
else \
  echo "wrong  \n$INVNUMB" ; \
fi ; \
done
Run Code Online (Sandbox Code Playgroud)

产生这个:

wrong  \nIN353886
IN353897
IN353905
IN353910
IN353902
IN353864
IN353875
IN353840
IN353862
IN353922
IN353739
IN353876
IN353920
Run Code Online (Sandbox Code Playgroud)

但是,如果我对else语句进行更改,则会得到以下信息:

for INV in "$(ls np4178/*pdf)" ;\
   do INVNUMB="$(pdfgrep -ho 'IN[0-9]{6,6}' $INV)" ; \
   if [[ -z ${INVNUMB+x} ]]; \
   then \
     echo "\n$INVNUMB" …
Run Code Online (Sandbox Code Playgroud)

freebsd scripting bash

0
推荐指数
1
解决办法
64
查看次数

标签 统计

bash ×1

freebsd ×1

scripting ×1