Linux Shell & scp指令
Posted 中国思想史
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux Shell & scp指令相关的知识,希望对你有一定的参考价值。
Linux Shell
一个简单的shell文件示例:
#!/bin/bash
echo "Hello World !"
SHELL定义变量示例:your_name="test_name"
使用一个定义过的变量,只要在变量名前面加美元符号即可
使用变量示例:your_name=" test_name "
echo $your_name
echo $your_name
变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界
已定义的变量,可以被重新定义,如:
your_name=" test_name "
echo $your_name
your_name=" test_name2"
echo $your_name
使用readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
下面的例子尝试更改只读变量,结果报错:
#!/bin/bash
myUrl="http://www.baidu.com"
readonly myUrl
myUrl=http://www.google.com
使用 unset 命令可以删除变量。语法:
unset variable_name
变量被删除后不能再次使用。unset 命令不能删除只读变量。
SHELL拼接字符串(直接拼接字符串变量)
your_name=" test_name "
greeting="hello,"$your_name" !"
greeting_1="hello, $your_name!"
echo $greeting $greeting_1
SHELL获取字符串长度(使用#号操作)
string="abcd"
echo $#string #输出4
SHELL提取子字符串
以下实例从字符串第 2 个字符(索引为1)开始截取 4 个字符:
string="runoob is a great site"
echo $string:1:4 # 输出 unoo
SHELL查找子字符串
查找字符 "i 或s" 的位置:
string="runoob is a greatcompany"
echo `expr index "$string"is` # 输出 8
SHELL数组相关:
bash支持一维数组(不支持多维数组),并且没有限定数组的大小
在Shell中,用括号来表示数组,数组元素用"空格"符号分割开。定义数组的一般形式为:
数组名=(值1 值2 ... 值n)
读取数组元素值的一般格式是:
$数组名[下标]
例如:
valuen=$array_name[n]
使用@符号可以获取数组中的所有元素,例如:
echo $array_name[@]
获取数组长度的方法与获取字符串长度的方法相同,例如:
# 取得数组元素的个数
length=$#array_name[@]
# 或者
length=$#array_name[*]
# 取得数组单个元素的长度
lengthn=$#array_name[n]
SHELL外部引用:
和其他语言一样,Shell 也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件
Shell 文件包含的语法格式如下:
. filename # 注意点号(.)和文件名中间有一空格
或
source filename
shell函数示例:
下面的例子定义了一个函数并进行调用:
#!/bin/bash
demoFun()
echo "这是我的第一个 shell 函数!"
echo "-----函数开始执行-----"
demoFun
echo "-----函数执行完毕-----"
输出结果:
-----函数开始执行-----
这是我的第一个 shell 函数!
-----函数执行完毕-----
在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数...
注意,$10 不能获取第十个参数,获取第十个参数需要$10。当n>=10时,需要使用$n来获取参数。
还有SHELL很有用的一个命令test:
Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
实例演示:
num1=100
num2=100
if test $[num1] -eq $[num2]
then
echo '两个数相等!'
else
echo '两个数不相等!'
fi
输出结果:
两个数相等!
以上是关于Linux Shell & scp指令的主要内容,如果未能解决你的问题,请参考以下文章