一、shell语句echo $"1"?
$和任何字符组合 如果没有定义过的话 那么肯定是空,所以理论上
$"1"显示的应该是空
但是 1加了引号,那么代表这个1是一个字符串,解释器又单独把这个1打印了
通常情况下,在工作中用的最多的有如下几项:
$0:Shell 的命令本身
$1 到 $9:表示 Shell 的第几个参数
$? :显示最后命令的执行情况
$#:传递到脚本的参数个数
$$:脚本运行的当前进程 ID 号
$*:以一个单字符串显示所有向脚本传递的参数
$!:后台运行的最后一个进程的 ID 号
$-:显示 Shell 使用的当前选项
二、shell处理字符串拼接?
字符串最好放到双引号中,防止中间有空格,如name中就可能存在空格。改为:total="${name}""${email}""${other}"或者total="$name""$email""$other"
三、解决shell脚本中echo怎么写入换行到文件?
测试环境:ubuntu12.04 LTS版本
echo >> file.txt即可,
这种方法对于脚本开头是bash和sh效果都一样,
而echo -e >> file.txt这种只适合与bash
对于sh,会输入-e到文件然后再换行。
而echo -e "\n" >> file.txt对于bash会连续换2行,
对于sh,会输入-e和一个新空行到文件。
四、在shell中如何分割字符串?
比如,要分割 test=”aaa,bbb,cc cc,dd dd”,可以这样arr=$(echo $test|tr "," "\n")然后用
五、shell判断字符串之间是否匹配?
是的,shell可以通过使用正则表达式进行字符串匹配判断。1. 使用正则表达式可以明确判断字符串之间是否匹配,并获得匹配的结果。2. 在shell脚本中,可以使用语法结构和命令来实现字符串的匹配,如使用`[ ]`结构和`=~`操作符进行正则匹配判断。3. 此外,还可以使用`grep`命令来进行字符串匹配,通过使用适当的参数和正则表达式,可以得到与之匹配的行或字符串。总结:在shell中,使用正则表达式可以方便地进行字符串匹配判断,通过掌握相关的语法和命令,可以实现字符串之间的匹配操作。
六、shell匹配以什么开头的字符串?
在shell中,可以使用通配符来匹配文件名或字符串。其中,^符号表示匹配以某个字符或字符串开头的字符串。例如,如果想要匹配所有以“abc”开头的文件名,可以使用“ls abc*”命令。
如果想要在grep命令中匹配以“hello”开头的行,可以使用“grep ^hello”命令。
这种匹配方式非常灵活,可以根据需要进行组合使用,从而实现更加精准的匹配。需要注意的是,不同的shell可能会有略微不同的语法规则,因此在使用时需要注意确认所使用的shell版本。
七、linux shell判断字符串以什么结尾?
linux shell判断字符串以命令结尾。
除了用外部的命令比如expr、awk、sed等等,内置方法可以用截取、替换等方式得到一个新的字符串,如果新的字符串和原来的字符串有变化,说明变量包含字符串。
八、shell中如何比较两字符串是否相等?
比较两个字符串是否相等的办法是:
if [ "$test"x = "test"x ]; then
这里的关键有几点:
1 使用单个等号
2 注意到等号两边各有一个空格:这是unix shell的要求
3 注意到"$test"x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x = testx,显然是不相等的。而如果没有这个x,表达式就会报错:[: =: unary operator expected
二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别.
整数比较
-eq 等于,如:if [ "$a" -eq "$b" ]
-ne 不等于,如:if [ "$a" -ne "$b" ]
-gt 大于,如:if [ "$a" -gt "$b" ]
-ge 大于等于,如:if [ "$a" -ge "$b" ]
-lt 小于,如:if [ "$a" -lt "$b" ]
-le 小于等于,如:if [ "$a" -le "$b" ]
大于(需要双括号),如:(("$a" > "$b"))
>= 大于等于(需要双括号),如:(("$a" >= "$b"))
小数据比较可使用AWK
字符串比较
= 等于,如:if [ "$a" = "$b" ]
== 等于,如:if [ "$a" == "$b" ],与=等价
注意:==的功能在[[]]和[]中的行为是不同的,如下:
1 [[ $a == z* ]] # 如果$a以"z"开头(模式匹配)那么将为true
2 [[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true
3
4 [ $a == z* ] # File globbing 和word splitting将会发生
5 [ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么结果为true
一点解释,关于File globbing是一种关于文件的速记法,比如"*.c"就是,再如~也是.
但是file globbing并不是严格的正则表达式,虽然绝大多数情况下结构比较像.
!= 不等于,如:if [ "$a" != "$b" ]
这个操作符将在[[]]结构中使用模式匹配.
大于,在ASCII字母顺序下.如:
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
注意:在[]结构中">"需要被转义.
具体参考Example 26-11来查看这个操作符应用的例子.
-z 字符串为"null".就是长度为0.
-n 字符串不为"null"
九、linux,shell如何把字符串变成数组?
echo $url | cut -d , -f 1cut是切割命令,-d表示分隔符,这里是逗号,-f表示取第几个,这里是第一个注意和数组不一样,数组是取第0个。
十、shell里面怎么判断字符串是否为空?
str=""if [ -z "$str" ]; then echo "Empty"else echo "Not empty"fi
- 相关评论
- 我要评论
-