16-03-07
#!/bin/bash
echo "hello world!"
存為hello.sh
在終端執行時,輸入:
./hello.sh
報錯-bash: ./hello.sh: permission denied
檢視文字許可權為:ls -l hello.sh
-rw-r--r-- 1 wangdanying staff 32 3 7 14:42 hello.sh %沒有執行許可權
嘗試改變文字的許可權,終端輸入:
chmod 777 hello.sh %對檔案更改許可權,使所有人都有rwx許可權,即
ls -l hello.sh
%檢視許可權
-rwxrwxrwx 1 wangdanying staff 32 3 7 09:55 hello.sh
顯示為所有者的許可權,同組使用者的許可權,其他使用者的許可權都為rwx,這樣獲得了執行許可權
改變許可權後,指令碼執行成功。
localhost:~ wangdanying$ ./hello.sh
hello world!
或者編輯後,在終端輸入:
chmod +x ./hello.sh
ls -l hello.sh
-rwxr-xr-x 1 wangdanying staff 895 3 7 11:56 test.sh
這樣只增加了所有者的執行許可權
./hello.sh
直接改變檔案許可權,即可執行成功。
遇到的常用shell指令碼
set e 執行的時候如果出現了返回值為非零,整個指令碼就會立即退出 set e 執行的時候如果出現了返回值為非零,將會繼續執行下面的指令碼 set u 執行的時候如果遇到不存在的變數,會報錯並停止執行 cmd1 cmd2 cmd1 和 cmd2都會被執行 cmd1 cmd2 如果 cmd1 執行成...
shell之外的地方執行指令碼遇到的問題
這周裝伺服器,系統,應用都ok後,發現有的crontab指令碼中的命令無法執行,苦思了兩天,還是以下提供的建議解決了我的問題。最近碰到乙個問題,shell指令碼直接執行和crontab設定好定時執行的結果不一樣,鬱悶.指令碼是向遠端資料庫寫入記錄,直接執行可以在遠端寫入記錄,而在crontab中定時...
shell 指令碼學習
case var in pattern statement esac case 的指令碼語法是雙分號結尾的。sed e s i.86 i386 查詢替換。sed 流編輯器 將輸入流中的i.86替換成i386。是個萬用字元。輸入流的形式可能是 管道,檔案。shell d mkdir p 指令碼的條件執...