這是一個系列文章,主要分享shell(部分功能僅適用於bash)的使用建議和技巧,每次分享3點,希望你能有所收穫。
1 常用快捷鍵
- Alt+Backspace:刪除光標前的一個單詞
- Alt+F:移動光標到下一個空格處
- Alt+B:移動光標到上一個空格後第一個字符處
- Ctrl+R:搜索執行過的命令行
- Ctrl+U:刪除光標之前所有字符
- Ctrl+K:刪除光標之後的所有字符
- Ctrl+A:移動光標到行首
- Ctrl+E:移動光標到行尾
這8個快捷鍵在命令行操作時會經常用到,如果你沒有使用過,多用幾次就習慣了,另外,多記住幾個快捷鍵沒什麼壞處。
2 bash調試模式
示例腳本:
#!/bin/bash -x
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo script dir is "<$script_dir>"
運行腳本:
$ ./get_cur_dir.sh
+++ dirname ./get_cur_dir.sh
++ cd .
++ pwd
+ script_dir=/media/sf_share/git/bash_practice
+ echo script dir is '</media/sf_share/git/bash_practice>'
script dir is </media/sf_share/git/bash_practice>
通過在腳本頂部添加-x選項,運行腳本時會打印出每一行命令,輸出的+號個數表示命令的嵌套層數,從輸出可以清楚看到每條命令的執行情況,方便調試腳本。如果去掉-x選項,運行腳本只會打印:script dir is
3 獲取腳本所在目錄
示例腳本:
#!/bin/bash
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo script dir is "<$script_dir>"
運行腳本:
$ . ./get_cur_dir.sh
script dir is </media/sf_share/git/bash_practice>
$ source ./get_cur_dir.sh
script dir is </media/sf_share/git/bash_practice>
$ sh ./get_cur_dir.sh
script dir is </media/sf_share/git/bash_practice>
在shell腳本內部,經常需要去獲取腳本所在目錄。示例中給出的方法,無論使用source、點號或者sh方式運行腳本,都可以正確獲取腳本所在目錄。