[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bash shows an error message about unpaired quotes, but they are paired
From: |
f . de . kruijf |
Subject: |
bash shows an error message about unpaired quotes, but they are paired |
Date: |
Mon, 26 Mar 2018 21:54:21 +0200 (CEST) |
Configuration Information [Automatically generated, do not change]:
Machine: x86_64
OS: linux-gnu
Compiler: gcc
Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='x86_64'
-DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='x86_64-suse-linux-gnu'
-DCONF_VENDOR='suse' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL
-DHAVE_CONFIG_H -I. -I. -I./include -I./lib -fmessage-length=0
-grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong
-funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g
-D_GNU_SOURCE -DRECYCLES_PIDS -Wall -g -Wuninitialized -Wextra -Wno-switch-enum
-Wno-unused-variable -Wno-unused-parameter -Wno-parentheses -ftree-loop-linear
-pipe -DBNC382214=0 -DIMPORT_FUNCTIONS_DEF=0 -fprofile-use -fprofile-correction
uname output: Linux eiktum 4.15.10-1-default #1 SMP PREEMPT Thu Mar 15 20:31:17
UTC 2018 (5e4329c) x86_64 x86_64 x86_64 GNU/Linux
Machine Type: x86_64-suse-linux-gnu
Bash Version: 4.4
Patch Level: 19
Release Status: release
Description:
I have the following text file cowrie:
--- start of cowrie
#!/bin/sh
sudo -u cowrie /srv/cowrie/bin/cowrie stop > /dev/null
sleep 10
# delete small logs (likely irrelevant) and logs older then a week
find /srv/cowrie/log/tty/ -size -1000c -name '*.log' -delete
find /srv/cowrie/log/tty/ -ctime +7 -name '*.log' -delete
sudo -u cowrie /srv/cowrie/bin/cowrie start > /dev/null
--- end of cowrie
I have the following bash script aa.sh:
--- start of aa.sh
#!/bin/bash
run () {
echo "Running: ${*}"
eval ${*}
RET=${?}
if [ ${RET} -ne 0 ] ; then
echo "EXIT CODE NOT ZERO (${RET})!"
fi
return ${RET}
}
cp cowrie cowrietest
run 'sed -i "s/\/etc.*$/systemctl restart cowrie.service/" cowrietest'
run 'sed -i "s/sudo.*cowrie/systemctl/g" cowrietest'
run 'sed -i "s/>.*$/cowrie.service/g" cowrietest'
run 'sed -i "6a\find /srv/cowrie/log/ -mtime +7 -name \'cowrie.*\' -delete"
cowrietest'
--- end of aa.sh
Repeat-By:
If I execute the script I get the following on the terminal:
--- start of output
> ./aa.sh
Running: sed -i "s/\/etc.*$/systemctl restart cowrie.service/" cowrietest
Running: sed -i "s/sudo.*cowrie/systemctl/g" cowrietest
Running: sed -i "s/>.*$/cowrie.service/g" cowrietest
./aa.sh: line 16: unexpected EOF while looking for matching `"'
./aa.sh: line 17: syntax error: unexpected end of file
--- end of output on terminal
Fix:
[fix for the problem, don't include this section.]
- bash shows an error message about unpaired quotes, but they are paired,
f . de . kruijf <=