1. 在linux 下執行shell文件提示:No such file or directory,但這個路徑明明是存在的,為啥呢求指教
這個問題應該出在find命令上,在腳本中你的路徑「~/jre/log1」被保存在一個變數中$logPath
在腳內本中:find$logPath-ctime+7這條命令容,find把「~」當成普通字元,而不會解析為對應的home目錄。
在命令行(shell環境下)環境下:為什麼cd ~/jre/log1成功,是因為shell幫你解析「~」為對應的home目錄了。
所以如果在腳本中使用find命令,且用「~」表示要使用當前用戶home目錄,可以結合eval命令使用:
#!/bin/bash
logpath=$(cat/tmp/test.txt)獲取帶有~的路徑
find$(evalecho$logpath)-name"*.txt"使用eval計算表達式結果
2. linux下執行腳本提示找不到該目錄
找不到該目錄?仔細看看你的路徑對嗎?要運行腳本需要指定該腳本的具回體的路徑,答或者是進入到該腳本的目錄中,再執行。這很容易理解。打個比方,要做飯了,你不是要先回家,進廚房,才能開火做飯?你的家,你的廚房就是目錄。總不能說還在公交車上呢,就開始煎炒烹炸的燒菜煮飯吧?
3. LINUX下運行 啟動的腳本文件出錯!!
以上命令是分兩部復分的:制
1.先在終端上輸入:cd/opt/rescue-competition2010/boot (進入這個路徑目錄下)
2.在終端上輸入:./start.sh (執行當前目錄下的start.sh文件 )
4. linux上寫了腳本,不能執行!求解答!
你的腳本是在普通用戶下編寫、設置許可權的?
/opt下的東西都需要root許可權才能修改、mount也需要root許可權。
如果不是必須運行在非root用戶下的話,建議試試用root賬戶執行。
5. linux腳本.sh,使用全路徑無法正常運行的原因
#!/bin/bash
#*****你的錯誤再這里,取出的進程號都有兩個****運行腳本已經給出提示
#pid,進程id,processidentity
pid=`pidof-s<tomcat進程完整進程顯示的名稱,如果有路徑帶著路徑>`
kill-9$pid
#原文寫的1秒,你覺得合理嗎?真能完成?
sleep30
/usr/local/apache-tomvat-7.0.55/bin/startup.sh
#原文寫的1秒鍾你覺得tomcat能啟動起來嗎?
sleep15
ps-ef|greptomcat
sleep5
exit0
我猜這個程序中啟動那個文件的時候就直接寫的文件名,沒有寫路徑。
所以啟動那個文件的時候,就默認使用了當前路徑(非程序路徑),所以找不到。
應該是你程序的問題
7. Linux開機啟動文件rc.local無法執行怎麼辦
第一種情況:當centOS隨機啟動文件 /etc/rc.local失效時請按如下修改:
1、echo /etc/rc.local >>/etc/profile && source /etc/profile註:當執行生效會看到效果(/etc/profile文件在每個用戶登錄時會首先檢查並執行)
2、reboot註:重新啟動檢測是否生效
第二種情況:echo /etc/rc.local >>~/.bash_profile && source /etc/profile。
第三種情況:在 /etc/init.d 目錄下增加對應程序啟動腳本,然後重啟測試,內容如下:chkconfig --add 腳本名(將該腳本注冊到系統服務,此時直接輸入腳本可以直接運行)。
chkconfig 腳本名 on(將該服務加入隨系統開機啟動),添加自啟動,必須在腳本裡面加入chkconfig 啟動順序,才能加入進去。
/etc/rc.local 中部分命令無法執行。
在linux系統中添加隨系統啟動而自動運行的服務,只需在/etc/rc.local 腳本文件中添加即可,當運行的命令或程序不帶路徑時,例如:
#!/bin/bash
distccd --user nobody --allow 10.10.98.0/24 --log-file=/var/log/distcc.log --verbose --daemonloadavg -s 10.10.98.20 >/dev/null 2>&1
注意,distccd、loadavg命令存放在/usr/local/bin/目錄下
在系統執行這些命令時將報錯,無法正常執行!
由於在執行rc.local腳本時,PATH環境變數未全部初始化,目錄/usr/local/bin/ 需在執行/etc/profile 後才被添加到環境變數PATH中。
解決方法:在 /etc/rc.local 執行 /usr/local/bin/ 目錄中的命令需要使用絕對路徑。