我在運行.sh
文件的gvim工具欄中添加了一個按鈕。 .sh
文件運行scons以在/ build子目錄中構建我的C++應用程序並運行它。問題是當應用程序運行時,其當前工作目錄是包含.sh
文件(而不是applications/build子目錄)的文件夾! 那麼如何從.sh
文件運行內置的C++應用程序可執行文件(linux),以便其工作目錄將是包含可執行文件的文件夾?在其自己的工作目錄中運行可執行文件
1
A
回答
2
只是
cd $(dirname "$0")
./exec_test
注意,你需要./exec_test
,不exec_test
除非目錄實際上已經在PATH
1
下面是類似的例子(我不使用scons
)
我將我的工具欄圖標添加到:
:amenu ToolBar.mytool :!/home/me/code/misc/foo.sh "%"
對我來說,當我點擊這個時,vim
在與vim
相同的工作目錄中運行腳本。
foo.sh
包含:
#!/bin/bash
set -e
# You should see the name of your file.
# It might just be "my_file.c"
echo "$1"
# This will tell you where your script is current cd'd to.
pwd
# `cd` to where the file passed on the command line is:
cd "$(dirname "$1")"
# Look for "CMakeLists.txt"
# You only need this loop if your build file/program might be up a few directories.
# My stuff tends to be:
#/- project root
# CMakeLists.txt
# src/
# foo.c
# bar.c
while true; do
# We found it.
if [[ -e "CMakeLists.txt" ]]; then
break
fi
# We didn't find it. If we're at the root, just abort.
if [[ "`pwd -P`" = "/" ]]; then
echo "Couldn't find CMakeLists.txt." >&2
exit 1
fi
cd ..
done
# I do builds in a separate directory.
cd build && make
你會替換CMakeLists.txt
與SConstruct
,最後cd build && make
與scons
,或適當scons
東西。
相關問題
- 1. 正在運行的可執行文件修改自己
- 2. C#可執行文件執行目錄
- 3. 使用螞蟻從不同的工作目錄運行可執行文件
- 4. 試圖運行可執行文件 - 文件或目錄不存在,但存在文件。我可以執行它,但只能從目錄內執行它,如
- 5. 在windows中運行ubuntu文件作爲可執行文件
- 6. Linux在運行時寫入處理自己的可執行文件
- 7. 在gradlew中運行可執行文件
- 8. 在PHP中運行可執行文件
- 9. 在linux中運行可執行文件
- 10. 使用java從其自己的根目錄運行.sh腳本
- 11. 運行一個在項目中的可執行文件
- 12. 在自己的可執行文件中包裝py2exe
- 13. 在VisualStudio中打開我自己的可執行文件
- 14. 運行可運行不同的工作目錄
- 15. 如何在其他系統中運行可執行文件jar?
- 16. 運行可執行文件中的InstallScript
- 17. 在包含Java中的空格的工作目錄中執行外部可執行文件?
- 18. 自動運行自己的文件
- 19. 在cmake/Visual Studio項目中調試/運行可執行文件
- 20. 使用Shell在多個子目錄中運行可執行程序文件
- 21. 在其自己的cmd.exe中運行工具
- 22. 從同一目錄中的批處理文件運行不可執行的jar
- 23. 運行可執行文件不會執行任何操作
- 24. 我想文件從主Python文件跑去從自己的目錄運行
- 25. 正確運行unity項目中的可執行文件
- 26. Objective-C和Xcode中的工作目錄:調試模式與可執行文件
- 27. 如何讓從BAT文件運行的程序在自己的目錄中運行?
- 28. JButton執行目錄中的exe文件
- 29. 運行可執行文件的語法?
- 30. 如何讓JButton在同一目錄下運行可執行文件?
在你的shell腳本中,運行它之前,你不能只是'cd'到包含可執行文件的目錄嗎? – pobrelkey
不,我試過:) – Qualphey
「不」 - 你想捍衛爲什麼明顯的解決方案不適合你的用例嗎? – Thanatos