Linux Shell 脚本中字符串的连接方法

如果想要在变量后面添加一个字符,可以用一下方法:

$value1=home
$value2=${value1}"="
echo $value2

把要添加的字符串变量添加{},并且需要把$放到外面。

这样输出的结果是:home=,也就是说连接成功。

Linux Shell脚本命令行参数的写法

$0 —- 当前程序的名称,实际上是一个内部参数,不同于$1,$2….因为它必须有!

$# —- 传递给程序的总的参数数目,也就是那个传说中的数组大小

$? —- 上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。

$* —- 传递给程序的所有参数组成的字符串。

$@ —- 以”参数1″ “参数2” … 形式保存所有参数

$$ —- 本程序的(进程ID号)PID

$! —- 上一个命令的PID 命令行指令

$ test.sh f1.c f2.c 脚本举例:

if [ $# -eq 0 ];then
echo "no arguments"
else
for args in $@
echo $args
fi

其中$#表示参数的个数,$@取到所有的参数值。

Linux Shell中删除文件中某一行的方法

如果有一个abc.txt文件,内容是:

aaa

bbb

ccc

ddd

eee

fff

如果要删除aaa,那么脚本可以这样写:

sed -i '/aaa/d' abc.txt

如果删除的是一个变量的值,假如变量是var,应该写成:

sed -i '/'"$var"'/d' abc.txt

至于grep -v aaa abc.txt这个方法,是无法将修改的结果写入abc.txt中去的

Tonitech版权所有 | 转载请注明出处: http://www.tonitech.com/?p=79

Linux Shell错误重定向的方法

        在进行Shell脚本编程时经常出现一些像Java的exception一样的错误,比如:cp *.c file或者ls *.c > file,如果在当前操作的路径下不存在.c的文件,Shell就会报错“No such file or directory”,那么,我们该如何去除这个提示呢?

       解决方法是:在语句后面加“2>/dev/null”,例如:cp *.c file 2>/dev/null或者ls *.c > file 2>/dev/null。

 

Tonitech版权所有 | 转载请注明出处: http://www.tonitech.com/?p=77