Shell程式設計基礎學習之三:變數和test
心得技巧:
編寫shell指令碼的時候.每次都要寫PATH 所以把PATH的值交給一個環境變數可以減少輸入: 但是隻能在本機執行;若要其他機器執行,則要設定環境變數.
declare命令參看Linux基本命令學習之五
[hadoop@hadoop scripts]$ declare -x path
[hadoop@hadoop scripts]$ echo $path
/bin:/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin:~/bin
[hadoop@hadoop scripts]$ declare -p path
declare -x path="/bin:/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin:~/bin"
利用path環境變數編寫指令碼
#!/bin/bash
PATH=$path
export PATH
echo $path
echo -e "I will use 'touch' command to create 3 files."
read -p "Please iput your filename:" flieuser
filename=${fileuser:-"filename"}
#時間作為檔名字尾,防止重複
date1=$(date --date='2 days ago' +%Y%m%d)
date2=$(date --date='1 days ago' +%Y%m%d)
date3=$(date +%Y%m%d)
file1=${filename}${date1}
file2=${filename}${date2}
file3=${filename}${date3}
touch "$file1"
touch "$file2"
touch "$file3"
執行結果:
[hadoop@hadoop scripts]$ sh sh03.sh
/bin:/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin:~/bin
I will use 'touch' command to create 3 files.
Please iput your filename:zhaomingwei
[hadoop@hadoop scripts]$ ll
total 12
-rw-rw-r-- 1 hadoop hadoop 0 Aug 23 19:01 filename20140821
-rw-rw-r-- 1 hadoop hadoop 0 Aug 23 19:01 filename20140822
-rw-rw-r-- 1 hadoop hadoop 0 Aug 23 19:01 filename20140823
-rw-rw-r-- 1 hadoop hadoop 122 Aug 23 16:29 sh01.sh
-rw-rw-r-- 1 hadoop hadoop 234 Aug 23 16:37 sh02.sh
-rw-rw-r-- 1 hadoop hadoop 410 Aug 23 18:59 sh03.sh
=================
由於在Linux中配置檔案的配置工作是 比較多,而且要求的許可權也各不相同,所以有時候不得不使用一些特殊方法,比如,新增使用者到"超戶"
修改配置檔案並生效:
[hadoop@hadoop scripts]$ more sh05.sh
#!/bin/bash
PATH=$path
export PATH
if [ $UID -ne 0 ];then
sudo /etc/profile;exit
source /etc/profile
else
source /etc/profile
fi
新增sudo (超戶)使用者root 下面
# vi /etc/sudoers
找到:root ALL=(ALL) ALL
新增:(使用者名稱)hadoop ALL=(ALL) ALL
==================
test命令檢查某個檔案的相關屬性:(重要)
--------------------------------
test -e 檔名 檢查該檔案是否存在
test -f 檔名 該檔名是否存在且為檔案file
test -d 檔名 該檔名是否存在且為目錄 常用
-r 檢測是否具有可讀的許可權:
-w 檢測是否具有可寫許可權
-x 檢測是否具有可執行許可權
-s 檢測是否存在且為非空
---------------------------
-a 兩個條件同時成立
-o 任何一個條件成立
! 反向狀態
--------------------------------
判定字串的資料:
test -z string 判斷字串是否為0 ,若為空字串則為true
test -n string 判斷string是否為0, 若為0 則為false
test str1 = str2 若相等,返回true
============================================
判斷兩個數大小
-ne 不相等
-eq 相等
-gt 大於
-lt 小於
============================================
如果為 true 則返回第一個值,否則返回第二個值
[hadoop@hadoop scripts]$ test -e /dmtsai && echo "exist" || echo "Not exist"
結果
Not exist
相關文章
- Shell程式設計基礎學習之二:變數的基本認知程式設計變數
- shell指令碼程式設計學習筆記——變數指令碼程式設計筆記變數
- shell程式設計學習筆記(二):Shell中變數的使用程式設計筆記變數
- Shell程式設計基礎學習之六:sed 入門程式設計
- Shell程式設計-shell變數2-位置變數和預定義變數程式設計變數
- Shell程式設計-shell變數1程式設計變數
- [shell基礎]——變數變數
- Linux Bash Shell學習(八):shell程式設計基礎——string操作Linux程式設計
- Shell程式設計-基礎程式設計
- shell程式設計基礎程式設計
- Shell程式設計基礎學習之四:語法結構程式設計
- Shell程式設計基礎學習之一:正規表示式程式設計
- Shell程式設計-02-Shell變數程式設計變數
- Linux Bash Shell學習(七):shell程式設計基礎——執行Shell指令碼、functionLinux程式設計指令碼Function
- shell程式設計–bash變數程式設計變數
- shell程式設計(一)變數程式設計變數
- shell基礎篇(二)-shell變數變數
- linux基礎——shell變數(本地變數和環境變數)Linux變數
- shell程式設計基礎二程式設計
- Shell學習【test命令】
- Shell 變數學習變數
- [.net 物件導向程式設計基礎] (5) 基礎中的基礎——變數和常量物件程式設計變數
- C++程式設計基礎(2)變數C++程式設計變數
- 『忘了再學』Shell基礎 — 16、位置引數變數變數
- shell程式設計-高階變數程式設計變數
- Shell程式設計-04-Shell中變數數值計算程式設計變數
- shell指令碼程式設計基礎指令碼程式設計
- Shell學習【變數使用】變數
- shell程式設計–bash變數介紹程式設計變數
- Shell程式設計規範與變數程式設計變數
- Shell程式設計基礎學習之五:重定向與指令碼除錯程式設計指令碼除錯
- 『忘了再學』Shell基礎 — 13、環境變數(一)變數
- 『忘了再學』Shell基礎 — 29、AWK內建變數變數
- 『忘了再學』Shell基礎 — 14、環境變數(二)變數
- 『忘了再學』Shell基礎 — 15、環境變數(三)變數
- 『忘了再學』Shell基礎 — 17、預定義變數變數
- 『忘了再學』Shell基礎 — 32、Shell中test測試命令詳解
- java程式設計師程式設計筆試基礎學習Java程式設計師筆試