bash指令碼基礎

2021-09-01 15:54:07 字數 1486 閱讀 5179

新建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下的常用的與 或同編寫格式的基礎知識。之所以將這三個基礎知識點放到一起,是因為在實際的使用中,當需要在將若干條語句在一行執行時,除了簡順次執行之外,可能還需要一些簡單的條件控制,比如 當需要把指令碼寫成一行的時候,分號可以起到連線的作用。比如如下示例 兩個 符號,在指令碼中表...