[英]Script don't extract tar
我有這個腳本外殼,它提取並安裝了libpcap庫
#!/bin/sh
PATH=/usr/src
wget=/usr/bin/wget
tar=/bin/tar
echo "###############"
echo "INSTALL LIBPCAP"
echo "###############"
$tar -xvf libpcap-1.3.0.tar.gz
cd libpcap-1.3.0
./configure --prefix=/usr
make && make install
當我執行它,我有這個錯誤
tar (child): gzip: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
/bin/tar: Child returned status 2
/bin/tar: Error is not recoverable: exiting now
./install.sh: 14: cd: can't cd to libpcap-1.3.0
您已將PATH更改為/ usr / src,因此當tar嘗試執行gzip時,找不到它,因為它僅在/ usr / src中查找。 您需要將gzip的位置添加到PATH(以及配置腳本將要調用的每個工具以及make的位置),或顯式調用它,而不是讓tar調用它,或(最佳選擇) ,請勿修改PATH。 如果您堅持更改PATH,請嘗試PATH=/usr/src:/usr/sbin:/usr/bin:/sbin:/bin
或PATH=/usr/src:$PATH
,但實際上最好不要管它,將名為src
的目錄放入其中確實很奇怪。
如果您想將/usr/src
添加到PATH
變量中,那么更好的方法是
PATH="$PATH:/usr/src"
要使您的腳本從任何目錄路徑運行,請使用一個單獨的變量,該變量保存源文件路徑的絕對路徑,例如以下腳本中使用的file_path
變量。
#!/bin/sh
PATH="$PATH:/usr/src"
wget=/usr/bin/wget
tar=/bin/tar
file_path="/path/to/source-files"
echo "###############"
echo "INSTALL LIBPCAP"
echo "###############"
$tar -xvf $file_path/libpcap-1.3.0.tar.gz
cd $file_path/libpcap-1.3.0
./configure --prefix=/usr
make && make install
在處理gzip壓縮的tar時,應顯式傳遞-z
選項,因此您的代碼應類似於:
$ tar -x z vf libpcap-1.3.0.tar.gz
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.