當前位置:首頁 » 編程軟體 » sh腳本在線調試

sh腳本在線調試

發布時間: 2022-09-26 14:58:20

㈠ 怎麼在網站上運行SH腳本

什麼網站

㈡ 怎麼在網站上運行SH腳本

如何區分php腳本是在shell下運行還是在web上瀏覽
授權方式:署名,非商業用途,保持一致,轉載時請務必以超鏈接(http://www.fwolf.com/blog/post/243)的形式標明文章原始出處和作者信息及本聲明。
一般我們使用php是作web開發用的,但php也能夠在shell下運行,就像bash、python腳本一樣,方式一是通過php -r或php -f命令(nix和win下都可用),另一種方式是在php文件的前面加上「#! /usr/bin/php」,並chmod +x xxx.php。

雖然php程序在這兩種情況下運行的結果基本一致,但還是有所區別的,首先他們使用不同的php.ini配置文件,這個以前就說過了;其次兩種情形下輸出信息的時候要略微不同,在cli方式下運行,輸出信息的分行一般使用回車就夠了,而在web下瀏覽的時候,還要多加上一個
;最後得到參數的方式不同,cli下可以直接取argv數組,而web下則要通過$_GET數組。

那麼有什麼方法讓我的腳本自動判斷是處於哪種運行模式下,從而選擇不同的處理方法呢?通過對比cli和web方式下phpinfo()反饋信息的不同,我發現基本可以用環境變數$ENV[""]來判斷,當採用php -f方式執行的時候,$ENV[""]的值是/usr/bin/php,即執行文件的名稱,當設置了「#! /usr/bin/php」並運行xxx.php時,$ENV[""]的值是./xxx.php,也是執行文件的名稱,最後在web方式下瀏覽的時候,$ENV[""]的值是/usr/sbin/apache2,即解析php文件並反饋信息的web伺服器執行文件的名稱。那麼,基於這個環境變數的值,我們就可以判斷出程序的運行模式,並選擇不同的處理方法了。下面是一個簡單例子的源代碼(cli_web.php),輸出結果為得到的所有命令行或者get參數。

#! /usr/bin/php
<?php
if ((『/usr/bin/php』 == $_ENV["_"]) //php -r …
|| ($_SERVER["SCRIPT_FILENAME"] == $_ENV['_'])) //chmod +x xxx.php and run itself
$is_cli = true;
else
$is_cli = false;

//Set line break string and argument array
if ($is_cli)
{
$s_br = 「\n」;
$ar = $_SERVER['argv'];
unset($ar[0]); //self-name of this script
}
else
{
$s_br = 「
\n」;
$ar = $_GET;
}

$s = implode($s_br, $ar);
$s .= $s_br;
echo 「Got arguments: $s_br$s」;
?>

上面的代碼在cli模式下運行結果為:

$ ./cli_web.php a b c d
Got arguments:
a
b
c
d
在web瀏覽方式下返回html代碼為(訪問形式為http://…../cli_web.php?a=1&b=2):

#! /usr/bin/php
Got arguments:

1

2

基本達到設計要求,只是web瀏覽方式下的「#! /usr/bin/php」不知怎麼才能去掉,它不在<?php ?>包含范圍內,無法使用ob_clean()清除,希望哪位路過的達人不吝賜教。

㈢ 如何調試windows的 shell擴展

首先腳本需要有執行許可權chmod u+x file.sh執行腳本有三種方法:
1. ./file.sh
特點:開啟bash子進程來執行,也就是開啟額外的進程來進行,不影響原進程的變數、配置等
2. bash file.sh
特點:和./file.sh相同
3. source file.sh 或者 . file.sh
特點:在原bash進程中執行腳本。

第三種方法主要用於在腳本中切換用戶su、切換目錄cd等命令。
source 和 . 命令是相同的。
你可以搜索 source

補充,如何查看腳本運行是否開啟了bash子進程
vim file.sh
寫入
#!/bin/bash
#echo $$命令會輸出bash進程ID
echo $$
保存並賦予可執行許可權chmod u+x file.sh
在你的shell中輸入,echo $$ 屏幕輸出4176
./file.sh 屏幕輸出3600
bash file.sh 屏幕輸出3984
source file.sh 屏幕輸出4176 和 你直接在shell中輸出的一樣,說明是在同一個bash進程

㈣ python 怎麼實現 shell 的 sh -x 這種調試功能

這種調試只適合shell,因為它的腳本相對來說,普遍比較簡短。
而大多Python IDE都會有斷點調試,相比更靈活適用。

㈤ 怎麼在網站上運行SH腳本

在網站上運行 SH 腳本? 你說的是shell嗎

㈥ 怎麼在網站上運行SH腳本

Subversion是一個強大的版本控制系統,特別是它能夠輕松地處理庫管理進程中在各個點上的數據。在進行提交後、或者進行提交前,或鎖定、或解鎖文件中,或者在其它情況下,你都能擁有腳本句柄數據。所有的這些都是通過hook實現的,hook是subversion庫結構中的一部分。Hook 由一個庫事件來觸發的。例如,如果你有一個subversion庫存放在/subversion/repos/packages下,那麼你的hook將被存放在/subversion/repos/packages/hooks目錄下。

在這個hook目錄下存放著大量的臨時文件。這些文件只是作為例子來存在。所以如果你想寫一個腳本能在每次提交後,把subversion數據用e -mail發送給你的話,你應該拷貝post-commit.tmpl到post-commit中,把它變為可執行的,並按照你的需要去編輯它。

這些腳本能從subversion網站上獲得,同時也有些其它用戶提供的腳本和工具。你能在subversion.tigris.org/tools_contrib.html上瀏覽到許多這樣的腳本。目前最感興趣的是郵件提交的(post-commit e-mail)腳本commit-email.pl。把這個文件下載下來,並把它放在/usr/local/bin/下面,然後使它變成可執行的。同時在 hooks/post-commit腳本中,在該文件末尾增加上以下內容:

REPOS=""

REV=""

/usr/local/bin/commit-email.pl "$REPOS" "$REV" --from [email protected] -s

"SVN commit in packages" [email protected]

這個將執行的commit-e-mail.pl腳本會帶有一些參數,也就是庫名和你做的修訂。它將按照指定的主題路線從 [email protected]網站上發送e-mail到[email protected]上,[email protected]網站上有些指定的用戶或者郵件列表。

如果你想在站點上查看其它的腳本,你可以在版本控制軟體庫的管理器中看到許多有趣的腳本。在整個數據被提交到subversion之前,這些腳本能夠做某些檢查,比如,各種預提交檢查腳本。

㈦ 如何調試shell腳本各種方法都說說。

方法一:sh -x script.sh
-x選項會將運行到的腳本內容顯示在屏幕上,前面有個+號。這樣就知道哪句被執行到了。對調試很有幫助。

方法二:在腳本中使用debug開關
適用於只調試部分腳本的情況。
set -x
......(要調試的代碼段)
set +x
然後sh script.sh運行腳本

方法三:在腳本中添加列印
比如搞個log輸出函數,專門用於列印調試相關信息。
_log()
{
if [ "$_DEBUG" = "true" ]; then
echo "調試信息"
fi
}
只要在外面控制$_DEBUG開關即可。

㈧ 如何調試linux shell腳本

最簡單的調試命令當然是使用echo命令。您可以使用echo在任何懷疑出錯的地方列印任何變數值。這也是絕大多數的shell程序員要花費80%的時間來調試程序的原因。Shell程序的好處在於不需要重新編譯,插入一個echo命令也不需要多少時間。
shell也有一個真實的調試模式。如果在腳本"strangescript" 中有錯誤,您可以這樣來進行調試:
sh -x strangescript
這將執行該腳本並顯示所有變數的值。
shell還有一個不需要執行腳本只是檢查語法的模式。可以這樣使用:
sh -n your_script
這將返回所有語法錯誤。
linux/unix shell l腳本調試方法
Shell提供了一些用於調試腳本的選項,如下所示:
-n
讀一遍腳本中的命令但不執行,用於檢查腳本中的語法錯誤
-v
一邊執行腳本,一邊將執行過的腳本命令列印到標准錯誤輸出
-x
提供跟蹤執行信息,將執行的每一條命令和結果依次列印出來
使用這些選項有三種方法,一是在命令行提供參數
$ sh -x ./script.sh二是在腳本開頭提供參數
#! /bin/sh -x第三種方法是在腳本中用set命令啟用或禁用參數
#! /bin/sh
if [ -z "$1" ]; then
set -x
echo "ERROR: Insufficient Args."
exit 1
set +x
fiset -x和set +x分別表示啟用和禁用-x參數,這樣可以只對腳本中的某一段進行跟蹤調試。

㈨ 怎麼在網站上運行SH腳本

一般的網站都不會提供給你這個功能的,否則安全性會收到外界的威脅。
如果是自己的網站,可以在後台cgi編程時,運行編入進去的SH腳本,不贊成這樣做。

熱點內容
湖人雙核配置哪個最好 發布:2025-05-15 10:09:48 瀏覽:979
手機熱點密碼怎麼查看 發布:2025-05-15 09:54:47 瀏覽:108
生意發力雲存儲 發布:2025-05-15 09:54:45 瀏覽:616
編寫一個shell腳本添加用戶 發布:2025-05-15 09:54:43 瀏覽:505
資料庫查看錶命令 發布:2025-05-15 09:52:27 瀏覽:914
p30是不是自帶方舟編譯器 發布:2025-05-15 09:51:48 瀏覽:599
追擊世界房間密碼是多少 發布:2025-05-15 09:51:46 瀏覽:995
cjavabyte 發布:2025-05-15 09:51:36 瀏覽:463
visa存儲卡 發布:2025-05-15 09:35:07 瀏覽:619
js調用php的方法 發布:2025-05-15 09:29:13 瀏覽:496