command
source filepath 使当前shell读入路径为filepath的shell文件依次执行文件中的所有语句
$0 shell的名称
pwd -P 显示出实际路径,而非使用链接路径
jq 读取处理json文件
#config=$(echo demo.json | jq -r --arg key "key" '.data[] | select(.key == "key") | .value')
function read_json_file(){
file="$1"
test_mode=$(cat $file | jq -r .test_mode)
config_keys=$(cat $file | jq -r '.modes['$test_mode'].configs[] | .key')
for key in $config_keys;do
value=$(cat $file |jq -r --arg key "$key" '.modes['$test_mode'].configs[] | select(.key == $key) | .value')
echo "key is $key,value is $value"
key="G_$key"
eval "$key=\"$value\""
done
}
在创建菜单项时,非可打印字符通常也很有用,比如制表符和换行符。要在echo命令中包含这些字符,必须用-e选项
echo -e “1.\tDisplay disk space”
sleep shell脚本执行结束echo打印显示不了,使用sleep 停顿几秒,则可以看到提示输出
$0 shell 本身的文件名
默认情况下,shell脚本会以脚本中的最后一个命令的退出状态码退出。
$ echo $?
0
$()和 反引号都是用作命令替换的。
basename 会返回不包含路径的脚本名。
#删除中文,暂时不支持中文yaml注释
function delete_chinese() {
LANG=C sed -i '/[^\x00-\x7F]\{1,\}/d' "test/*.yaml
}
i操作
1.跳到文本的最后一行:按“G”,即“shift+g”
2.跳到最后一行的最后一个字符 : 先重复1的操作即按“G”,之后按“$”键,即“shift+4”。
3.跳到第一行的第一个字符:先按两次“g”,
4.跳转到当前行的第一个字符:在当前行按“0”。