在linux 下執行shell檔案提示 no such fi

時間 2021-08-30 09:49:17

1樓:

這個問題應該出在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 $(eval echo $logpath) -name "*.txt" 使用eval計算表示式結果

2樓:匿名使用者

cat ~/jre/log...

用絕對路徑

比如 cat /home/my/name/jre/log....

寫指令碼用相對路徑是大忌啊

3樓:匿名使用者

如果你沒進行chmod +x 你的指令碼名的話,就用bash 你的指令碼名字來執行,如果你執行過了,就使用./你的指令碼名來執行,

前提是你的指令碼ok

4樓:唐衛公

你理解錯了,除非特別加上,否則home directory不在$path裡。用echo $path試試就清楚了。

linux下使用shell批量修改檔名幾種方法總

linux下批量修改檔名 linux下修改檔名有mv和rename。其中mv命令只能對單個檔案重新命名這是mv命令和rename命令的在重新命名方面的根本區別。linux的rename命令有兩個版本,乙個是c語言版本的,乙個是perl語言版本的,判斷方法 輸入man rename 看到第一行是 re...

linux下的shell命令,命令列,終端執行概念的解釋

筆刀俠 廣州 傳統的 linux 是不帶圖形使用者介面的,也就是沒有滑鼠只能乙個個字母敲命令來管理的。現在你安裝的 linux 桌面版是帶有圖形使用者介面的,你可以用滑鼠點一點來告知計算機你的用途來讓計算機做相應的操作。因為圖形使用者介面非常多版本,不知道你是用哪種版本,書上描述某種操作 或者別人告...

怎樣在linux下啟動tomcat

空軍 linux下tomcat服務的啟動 關閉與錯誤跟蹤,使用putty遠端連線到伺服器以後,通常通過以下幾種方式啟動關閉tomcat服務 切換到tomcat主目錄下的bin目錄 cd usr local tomcat bin 1,啟動tomcat服務 方式一 直接啟動 startup.sh 方式二...