有个问题:
我的S3的文件名是这样的:
1002-02-20221103-契约处理(更新)_internet.pdf
1002-03-20221103-新建_network.pdf
单独执行sudo aws s3 ls path/文件名时因为提示括号错误,所以在文件名前后加了引号👇
sudo aws s3 ls path/'文件名'这样就能查到了。
现在的问题是在shell中check不正确。
首先在从psql的select抽数据到出力文件时做了加引号处理。出力文件中的内容是
S3://s3-abc-sys-efgh/Pgm/20221103/'1002-02-20221103-契约处理(更新)_internet.pdf'
(文件第一位有个空格,不过已经处理掉了,后面打印出来的post_data的值里也没有空格了是正确的)
然后下面处理前我想判定一下这个文件是否还在S3上存在。但是明明不存在它却也走了存在处理的逻辑。也试了试如果不要''的话,就可以正确判定。这可怎么办呢?
sudo aws s3 ls ${post_data} >/dev/null
if [ -z "${?}" ]; then
echo "s3文件不存在”
else
echo “s3文件存在”
fi
※post_data的值也打出来了是正确的:
[S3://s3-abc-sys-efgh/Pgm/20221103/'1002-02-20221103-契约处理(更新)_internet.pdf']