第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何將當(dāng)前工作目錄設(shè)置為腳本目錄?

如何將當(dāng)前工作目錄設(shè)置為腳本目錄?

繁花不似錦 2020-02-03 14:58:29
我正在寫(xiě)一個(gè)bash腳本。我需要當(dāng)前的工作目錄始終是腳本所在的目錄。默認(rèn)行為是腳本中的當(dāng)前工作目錄是運(yùn)行它的外殼程序的目錄,但是我不希望出現(xiàn)這種情況。
查看完整描述

3 回答

?
Smart貓小萌

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊

#!/bin/bash

cd "$(dirname "$0")"


查看完整回答
反對(duì) 回復(fù) 2020-02-03
?
至尊寶的傳說(shuō)

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊

以下內(nèi)容也適用:


cd "${0%/*}"


查看完整回答
反對(duì) 回復(fù) 2020-02-03
?
慕尼黑5688855

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊

嘗試以下簡(jiǎn)單的一線:


對(duì)于所有UNIX / OSX / Linux

dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P)

重?fù)?/p>

dir=$(cd -P -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)

注意:命令中使用雙破折號(hào)(-)表示命令選項(xiàng)的結(jié)尾,因此包含破折號(hào)或其他特殊字符的文件不會(huì)破壞命令。


注意:在Bash中,請(qǐng)使用${BASH_SOURCE[0]},以代替,$0否則在采購(gòu)(source/ .)時(shí)路徑可能會(huì)中斷。


對(duì)于Linux,Mac和其他* BSD:


cd "$(dirname "$(realpath "$0")")";

注意:realpath默認(rèn)情況下,應(yīng)將其安裝在最受歡迎的Linux發(fā)行版中(例如Ubuntu),但是某些情況下可能會(huì)丟失,因此必須進(jìn)行安裝。


注意:如果您使用的是Bash,請(qǐng)使用${BASH_SOURCE[0]}代替$0,否則在采購(gòu)(source/ .)時(shí)路徑可能會(huì)中斷。


否則,您可以嘗試類(lèi)似的方法(它將使用第一個(gè)現(xiàn)有工具):


cd "$(dirname "$(readlink -f "$0" || realpath "$0")")"

對(duì)于特定于Linux的:


cd "$(dirname "$(readlink -f "$0")")"

在* BSD / Mac上使用GNU readlink:


cd "$(dirname "$(greadlink -f "$0")")"

注意:您需要先coreutils安裝(例如1.安裝Homebrew和2. brew install coreutils)。


重?fù)?/p>


在bash中,您可以使用Parameter Expansions來(lái)實(shí)現(xiàn),例如:


cd "${0%/*}"

但是如果腳本是從同一目錄運(yùn)行的,則無(wú)法使用。


另外,您可以在bash中定義以下函數(shù):


realpath () {

  [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"

}

此函數(shù)有1個(gè)參數(shù)。如果參數(shù)已經(jīng)具有絕對(duì)路徑,則按原樣打印,否則打印$PWD變量+文件名參數(shù)(不帶./前綴)。


或以下是從Debian .bashrc文件中獲取的版本:


function realpath()

{

    f=$@

    if [ -d "$f" ]; then

        base=""

        dir="$f"

    else

        base="/$(basename "$f")"

        dir=$(dirname "$f")

    fi

    dir=$(cd "$dir" && /bin/pwd)

    echo "$dir$base"

}


查看完整回答
反對(duì) 回復(fù) 2020-02-03
  • 3 回答
  • 0 關(guān)注
  • 835 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)