Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 错误:找不到Tar命令_Bash_Shell_Unix_Tar - Fatal编程技术网

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"