Bash 错误:找不到Tar命令
当我运行脚本时,它说找不到该命令。我试着用任何类型的括号来表示变量,但仍然不起作用。有什么帮助吗Bash 错误:找不到Tar命令,bash,shell,unix,tar,Bash,Shell,Unix,Tar,当我运行脚本时,它说找不到该命令。我试着用任何类型的括号来表示变量,但仍然不起作用。有什么帮助吗 但是,当我运行tar-zvxf/tmp/backup/etc.tar.gz-C/root/testing命令时,它起了作用。您正在将某些内容保存到路径中,shell将搜索该路径以查找可执行文件。因此,当您使用该变量时,shell无法找到,例如,tar,因为它不再位于您的搜索路径中。使用不同的变量名。和/或sudo-in-a-script问题:是的,当我分别尝试该命令时,安装了tar,但它仍然有效。如
但是,当我运行tar-zvxf/tmp/backup/etc.tar.gz-C/root/testing命令时,它起了作用。您正在将某些内容保存到
路径中,shell将搜索该路径以查找可执行文件。因此,当您使用该变量时,shell无法找到,例如,tar
,因为它不再位于您的搜索路径中。使用不同的变量名。和/或sudo-in-a-script问题:是的,当我分别尝试该命令时,安装了tar,但它仍然有效。如果返回/usr/bin/tar
,sudo
问题围绕着要求用户手动输入密码的sudo
,则查找tar的完整路径并在脚本中使用完整路径(例如sudo/usr/bin/tar…
)而没有sudo.type的情况也是一样的,当脚本运行时。只要这是可以接受的,脚本中的sudo
就没有问题。尝试使用/usr/bin/tar也不起作用。这就是为什么建议shell变量使用小写名称的原因——所有“特殊”环境变量都是大写的,所以如果您坚持使用小写,您永远不会意外踩到其中一个并弄坏某些东西。看见
echo "Enter path of backup file e.g /tmp/backup/etc.tar.gz : "
read PATH #input was /tmp/backup/etc.tar.gz
echo "Enter directory: "
read DIR #input was /root/testing
sudo tar -zvxf "$PATH" -C "$DIR"