gpt4 book ai didi

bash - 在 bash 脚本中出现 "command not found"错误

转载 作者:行者123 更新时间:2023-11-29 09:01:34 26 4
gpt4 key购买 nike

我写了一个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 和 cut 完整路径,它们就可以工作。但我不想对脚本中的所有命令都这样做。如果我删除最后一行并回显 PATH 变量,那就完全没问题了。只有在添加最后一条命令之后,我才看到问题所在。

我做错了什么?

最佳答案

问题是,如果您在调用时不使用完整路径,那么您正在重新定义 bash 查找二进制文件的 PATH 变量。

您应该将 bash 脚本中的 PATH 更改为 MYPATH 或类似的东西,这样它就不会与已经存在的环境变量混淆。

如果您不知道 PATH 变量的用途,可以查看 wikipedia's article

关于bash - 在 bash 脚本中出现 "command not found"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5642521/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com