【发布时间】:2022-01-16 01:57:29
【问题描述】:
我编写了一个 bash 脚本,它根据输入参数获取三个路径,然后获取路径中的图像名/文件名。
类似:
我提供:
AA=/home/user
然后它使用find命令来获取
/home/user/dir2/images/dir/tellmeimage1fun.bin
最后我必须得到 tellmeimage1fun.bin 作为输出。
脚本:
#!/bin/bash
echo "arg0 n/k/d"
AA=$1
CC=$3
PATH1="`find $AA/dir2/images/dir/ -name *image1*.bin`"
PATH2="`find $AA/dir2/images/dir/ -name *bimage2*.bin`"
PATH3="`find $AA/dir2/images/dir/ -name *cimage3*.bin`"
if [ $CC = "n" ] ; then
PATH=$PATH1
elif [ $CC = "k" ] ; then
PATH=$PATH2
else
PATH=$PATH3
fi
#Getting filename name from path:
IMG="`ls $PATH | cut -d "/" -f6`"
OUTPUT:
/users/prasapat/bin/sl5: line 22: ls: command not found
/users/prasapat/bin/sl5: line 22: cut: command not found
如果我给出 ls 的完整路径并剪切它们,它们就可以工作。但我不想对脚本中的所有命令都这样做。如果我删除最后一行并回显 PATH 变量,那就完全没问题了。只有在添加最后一个命令后,我才看到问题。
我做错了什么?
【问题讨论】:
标签: bash