shell腳本所在目錄
A. 自己寫的shell腳本,放在哪個目錄可以自動搜索到
在哪個目錄可以搜索到是通過的你的$PATH來控制的
只要你把shell腳本放到$PATH的目錄下,就可以直接運行的
B. 如何用SHELL命令運行一個文件
1、Shell是命令解釋器,所執行的文件有兩種,一種是基於ELF文件格式的可執行文件,一種是基於Shell腳本格式的腳本文件。
2、不管是可執行文件還是shell腳本,如果存在於PATH變數所指明的路徑中,shell會自動尋找相應的可執行文件,用戶只需要輸入可執行文件名或者腳本名即可執行。
3、如果可執行文件或者Shell腳本的存放位置不在PATH變數所指明的路徑中,則需要通過".」來執行,比如下面的C語言寫的hello world程序,需要輸入./t才可以被shell運行。
C. shell腳本中 如何將當前目錄保存,進入其他目錄後 再返回這個目錄 oldpwd=pwd; cd $oldpwd #不行
寫個腳本landmask:
#! /bin/bash
if [ "$1" == "" ]
then
echo "Give me a landmask!"
if [ "$1" == "almigthy" ] || [ "$1" == "landmask" ]
then
echo "Error landmask!"
else
temp=`pwd`
alias $1="cd $temp"
fi
把這個腳本放到/usr/bin目錄,在.bashrc文件中加一行:alias landmask="source landmask"
當你要保存當前目錄的時候,執行命令:landmask newmask,把進入當前目錄的命令記錄為別名newmask,下次想進入這個目錄的時候,直接輸newmask就行了。
D. shell腳本丟失,應該放在那個目錄
1、echo $SHELL 顯示 /bin/bash
2、腳本部寫#!/bin/bash
3、vi編輯腳本 輸入 :set ff? 顯示unix
解誰幫看看
E. 怎麼在當前shell下執行腳本
方法一:切換到shell腳本所在的目錄(此時,稱為工作目錄)執行shell腳本:
復制代碼 代碼如下:
cd /data/shell
./hello.sh
./的意思是說在當前的工作目錄下執行hello.sh。如果不加上./,bash可能會響應找到不到hello.sh的錯誤信息。因為目前的工作目錄(/data/shell)可能不在執行程序默認的搜索路徑之列,也就是說,不在環境變數PASH的內容之中。查看PATH的內容可用
echo $PASH 命令。現在的/data/shell就不在環境變數PASH中的,所以必須加上./才可執行。
F. 如何在shell腳本中執行系統命令 小小知識站
方法一:切換到shell腳本所在的目錄(此時,稱為目錄)執行shell腳本:碼碼如下:cd /data/shell./hello.sh./的意思是說在當前的目錄下執行hello.sh。如果不加上./,bash可能會響應找到不到hello.sh的錯誤。因為目前的目錄(/data/shell)可能不在執行程序默認的搜索路徑之列,也就是說,不在環境變數PASH的內容之中。查看PATH的內容可用 echo $PASH 命令。現在的/data/shell就不在環境變數PASH中的,所以必須加上./才可執行。方法二:以絕對路徑的方式去執行bash shell腳本:碼碼如下:/data/shell/hello.sh方法三:直接使用bash 或sh 來執行bash shell腳本:碼碼如下:cd /data/shellbash hello.sh或碼碼如下:cd /data/shellsh hello.sh注意,若是以方法三的方式來執行,那麼,可以不必事先設定shell的執行許可權,甚至都不用寫shell中的第一行(指定bash路徑)。因為方法三是將hello.sh作為參數傳給sh(bash)命令來執行的。這時不是hello.sh自己來執行,而是被人家調用執行,所以不要執行許可權。那麼不用指定bash路徑自然也好理解了啊,呵呵……。方法四:在當前的shell環境中執行bash shell腳本:碼碼如下:cd /data/shell. hello.sh或碼碼如下:cd /data/shellsource hello.sh前三種方行shell腳本時都是在當前shell(稱為父shell)開啟一個子shell環境,此shell腳本就在這個子shell環境中執行。shell腳本執行完後子shell環境隨即關閉,然後又回到父shell中。而方法四則是在當前shell中執行的。
G. linux shell 問題怎麼知道shell腳本自己的路徑
用dirname命令和pwd命令(或讀取PWD變數)組合。先進入腳本所在目錄,讀出PWD值(這就是需要的東西),然後返回原來的位置[可選]。命令如下:
echo $(cd "$(dirname "$0")"; pwd)
這里的cd是在子shell中執行,所以不需要用額外的命令返回原位置了。
H. shell腳本 -d 是目錄文件,那麼-e,-f分別是什麼還有"! -e"這又是什麼意思呢
-e表示如果filename存在,則為真。
-f表示如果filename為常規文件,則為真。
!-e表示取非,如果filename存在,則為假。
(8)shell腳本所在目錄擴展閱讀:
shell和shell腳本的區別:
確切一點說,Shell就是一個命令行解釋器,它的作用就是遵循一定的語法將輸入的命令加以解釋並傳給系統。它為用戶提供了一個向Linux發送請求以便運行程序的介面系統級程序,用戶可以用Shell來啟動、掛起、停止甚至是編寫一些程序。
Shell本身是一個用C語言編寫的程序,它是用戶使用Linux的橋梁。Shell既是一種命令語言,又是一種程序設計語言(就是你所說的shell腳本)。
作為命令語言,它互動式地解釋和執行用戶輸入的命令;作為程序設計語言,它定義了各種變數和參數,並提供了許多在高階語言中才具有的控制結構,包括循環和分支。
它雖然不是 Linux系統內核的一部分,但它調用了系統內核的大部分功能來執行程序、創建文檔並以並行的方式協調各個程序的運行。
I. shell腳本 如何切換當前目錄
腳本中執行其他目錄的腳本或者命令,可以用&&連接兩條命令,當前面命令執行正常時,才執行後面命令
比如:
cd
/root/replace/scripts
&&
./run.out
cd
/root/replace/scripts
&&
./b.sh
記得許可權
J. linux shell腳本位置在哪兒
Linux 的shell腳本
說的是用shell語法寫的腳本文件
可放在任何位置
一般用.sh做擴展名,其實任何名字都可以。
運行shell腳本的
一般放在/bin下面
也可以在shell腳本第一行 用
#!指定。