新建bash指令碼
vim hello.sh
#!/bin/bash
echo hello world
#!/bin/bash
在 bash 中 第一行的 「#!」 及後面的 /bin/bash 就表明該檔案是乙個 bash 程式,需要由 /bin 目錄下的 bash 程式來解釋執行。bash 這個程式一般是存放在 /bin 目錄下,如果你的 linux 系統比較特別,bash 也有可能被存放在 /sbin 、/usr/local/bin 、/usr/bin 、/usr/sbin 或 /usr/local/sbin 這樣的目錄下;如果還找不到,你可以用 locate bash ,find / -name bash 2>/dev/null 或 whereis bash 這三個命令找出 bash 所在的位置;如果仍然找不到,那你可能需要自己動手安裝乙個 bash 軟體包了
執行bash程式
sh hello.sh
bash hello.sh
. ./hello.sh
chmod u+rx hello.sh
./hello.sh
指令碼中將字串輸入到檔案中
#!/bin/bash
echo "hello world" > my.txt
使用指令碼清除/var/log下的log檔案
#!bin/bash
log_dir = var/log
cd $log_dir
cat /dev/null > wtmp
echo "logs cleans up"
exit
1. 遇到許可權不夠的提示,為什麼,如何解決?許可權不夠加sudo啊,可是你會發現許可權不夠加sudo啊,可是你會發現
sudo cat /dev/null > /var/log/wtmp
一樣會提示許可權不夠,為什麼呢?因為sudo只能讓cat命令以sudo的許可權執行,而對於》這個符號並沒有sudo的許可權,我們可以使用
sudo sh -c "cat /dev/null > /var/log/wtmp "
讓整個命令都具有sudo的許可權執行
2. 為什麼cleanlogs.sh可以將log檔案清除?
因為/dev/null ,裡面是空的,什麼東西都可以往裡面扔,扔了就沒了
注釋
#轉義 去掉#原本的注釋效果
數制轉換(使用二進位制表示),不是乙個注釋,雙括號表示對於數字的處理
bash指令碼基礎
shell 指令碼 一 如何建立新shell指令碼?1.建立包含bash命令的文字檔案。檔案第一行應為 bin bash 2.使檔案可執行 使用chmod x scripts 3.將檔案放置在使用者的 path的目錄中 bin 用於使用者的私有程式 usr local bin 本地開發 系統上的其他...
BASH指令碼基礎 使用set
這篇文章介紹一下在bash中使用set的方法。set可以用於設定指令碼的執行方式,指令碼啟動時也可以通過設定選項來進行設定。在指令碼啟動的設定中,常見的一些選項都可以通過set來進行設定,比如 設定選項 設定選項 快捷設定選項 設定說明 語法檢查 n 用來進行bash語法的檢查 原始碼顯示 verb...
BASH指令碼基礎 與 或 格式
這篇文章介紹一下bash下的常用的與 或同編寫格式的基礎知識。之所以將這三個基礎知識點放到一起,是因為在實際的使用中,當需要在將若干條語句在一行執行時,除了簡順次執行之外,可能還需要一些簡單的條件控制,比如 當需要把指令碼寫成一行的時候,分號可以起到連線的作用。比如如下示例 兩個 符號,在指令碼中表...