酷!學園

技術討論區 => Linux 討論版 => 主題作者是: shihyu 於 2008-12-05 15:56

主題: 路徑執行問題
作者: shihyu2008-12-05 15:56
我有一個 shell srcipt 檔
shihyu@ubuntu ~/man] ./cx -o atoi  // 現在要在man 路徑下才可以執行
我想在任何路徑下都可以執行,要怎麼做才可以?

謝謝

主題: 回覆: 路徑執行問題
作者: 廉價勞工2008-12-05 16:00
用絕對路徑執行
在man那個目錄打pwd
假設是 /home/shihyu/man
就打 /home/shihyu/man/cx -o atoi 
主題: 回覆: 路徑執行問題
作者: shihyu2008-12-05 16:09
不想用絕對路徑執行 , 我記得有那種任何地方都可以執行

謝謝
主題: 回覆: 路徑執行問題
作者: 廉價勞工2008-12-05 16:16
改PATH吧
export PATH=$PATH:/home/shihyu/man
主題: 回覆: 路徑執行問題
作者: shihyu2008-12-05 16:35
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/shihyu/man // 看起來有加進去了

不過執行./cx -o atoi 沒反應?


主題: 回覆: 路徑執行問題
作者: 廉價勞工2008-12-05 16:39
設了PATH不用   ./  了   

直接cx -o atoi 試試看
主題: 回覆: 路徑執行問題
作者: shihyu2008-12-05 17:29
sed: command not found 出現這訊息

還有我重新登入後  PATH 設定的值被又環原

謝謝
主題: 回覆: 路徑執行問題
作者: 廉價勞工2008-12-05 17:41
看你用哪種shell , 請修改環境設定檔案.....

bash就 .bashrc
csh就 .cshrc

http://linux.vbird.org/linux_basic/0320bash.php#settings_bashrc (http://linux.vbird.org/linux_basic/0320bash.php#settings_bashrc)

http://linux.vbird.org/linux_basic/0220filemanager.php#dir_path (http://linux.vbird.org/linux_basic/0220filemanager.php#dir_path)
主題: 回覆: 路徑執行問題
作者: shihyu2008-12-06 04:19
我現在把 export PATH 寫在./bashrc 裡面這樣就OK

不過執行 cx -o atoi 還是一樣出現下面訊息 是不是還需要設定什麼
sed: command not found

謝謝
主題: 回覆: 路徑執行問題
作者: kenduest2008-12-06 06:03
我現在把 export PATH 寫在./bashrc 裡面這樣就OK

不過執行 cx -o atoi 還是一樣出現下面訊息 是不是還需要設定什麼
sed: command not found

謝謝

1. 你的 /usr/bin/ 有無 sed 這個程式 ?

2. 請問你寫的 script 是不是 windows 寫好後 upload 到 linux 的呢
主題: 回覆: 路徑執行問題
作者: shihyu2008-12-06 06:20
sed 有在/usr/bin/

沒錯~我是透過 samba 從windows 把code upload 到 linux

謝謝
主題: 回覆: 路徑執行問題
作者: darkranger2008-12-06 16:17
2. 請問你寫的 script 是不是 windows 寫好後 upload 到 linux 的呢
沒錯~我是透過 samba 從windows 把code upload 到 linux
請用 dos2unix 工具將 script 的斷行符號修正成 unix 格式
主題: 回覆: 路徑執行問題
作者: shihyu2008-12-08 00:23
代碼: [選擇]
#!/bin/bash

use()
{
  echo "Usage: $0 [-option] keyword "
  echo " -h    說明文件"
  echo " -o   (only)只顯示keyword函式的內容"
  echo " -a   (all)如果有其它函式呼叫keyord函式,一起顯示"

}

[ $# = 0 ] && { echo "Usage: $0 -option keyword ($0 -h for help)"; exit 1; }

[ $1 = "-h" ] && { use; exit 0; }

get()
{
  case "$1" in
     "-o")
       sed -n  '/函式名 : '$key'/{x;:a /函式名/!{n;/函式名/!H;ba};x;p}' Cfunction.txt 
       ;;
     "-a")
       awk -v RS="函式名 :" '/\<'$key'\(/{print RS""$0}' Cfunction.txt
       ;;
       * )
       echo "option invalid"
       exit 1
       ;;
  esac
}

key=$2

get $1

exit 0


http://yshihyu.twbbs.org/man.rar   // 完整檔案

感覺是 shell script 裡面sed路徑問題 , 因為我不太懂shell script 懂得朋友可以說一下要怎麼修改才可以符合我需要

謝謝
主題: 回覆: 路徑執行問題
作者: 廉價勞工2008-12-08 12:00
1, script中設PATH

2, script中使用絕對路徑