顯示具有 Shell Script 標籤的文章。 顯示所有文章
顯示具有 Shell Script 標籤的文章。 顯示所有文章

2014年3月28日 星期五

Linux - Crontab - 手動正常排程失敗

重點應該在Crontab執行SH檔案跟直接使用root執行還是有些許差異,
在於【系統環境】的配置不同,找了許多文章都教導:
 1.使用絕對路徑。
   2.使用前先執行/etc/profile系統配置檔案。
而我遇到的問題是Tomcat引入的環境變數編碼不同,造成原本正常的中文字都變亂碼
手動執行引入的編碼是UTF-8
排程執行引入的編碼卻是ANSI_X3.4-1968

所以解決方式就是在SH檔案的開頭加入。
#!/bin/ksh
source /etc/profile


2014年3月14日 星期五

Shell Script 指令置換 (命令替換)

` 反引號、 $(command) 皆可以用來做指令置換 (命令替換),將反引號、 $(command) 中的字符串做為命令來執行,我們在用shell編程時經常用的到。將系統命令的執行結果賦給一個變量。

A=`date`
echo $A 顯示的不是date而是當時的時間串
比如有一文件A的內容如下
ABCDEFG
1234456
abcdefg

B=`cat A|grep 234` # 檢索文件A中含有字符串234的行
echo $B 將顯示為1234456
echo "$B" 將顯示為什麼?
echo "\$B" 將顯示為什麼?


String contains in Shell Script

string='My string';

if [[ $string == *My* ]]
then
  echo "It's there!";
fi