linux下,cshell环境,在字符串中间加空格。

linux下,cshell环境,在字符串中间加空格。,第1张

"\ "

也就是空格前面加一个 \ 转义符试试。

还一个选择是用单引号。不过单引号里面不能用变量了。

另外,你也可以试试双引号里面放变量还有空格,或许也可以。双引号里面的变量依然会被 shell 进行对应替换数据的。

空字符串1是紧接着在30之后的吗?

空字符串2是紧接着在5之后的吗?

还是中间有TAB分隔?

我下面是紧接着追加C字段空格。

假设文本为file.txt (开头没有 A B C),那么:

#!/bin/bash

rm -f result.txt

cat file.txt | while read line

do

n=`echo "$line"|awk '{print $2}'`

(

echo -n "$line"

i=0

while [ $i -le $n ]

do

echo -n " "

let i+=1

done

echo

) >>result.txt

done

运行结果在result.txt里。

学 Kali 渗透的时候 Shell 脚本差点把我搞疯了,不停报错。因刚刚接触 Linux 和 Shell,没有系统学过,所以很多报错都不知道怎么回事。

对着视频敲脚本,视频中空格有没有也不怎么看得出来,没想到是空格的问题。后来查才发现 Shell 对空格有特别严格的要求。

参考: shell脚本中空格的注意问题

1. =

赋值时:两边不能有空格

i=1

i=$((i+1))

比较时:两边必须有空格

if [ $a = $b ]

2. if

整数比较时:中括号前后必须有空格

if [ a -xx b ]

参考: Linux#Shell#if [ $# -ne 1 ]then 是什么意思?

看来双括号还有问题…再学吧…

1. 变量名、等号、值之间不能有空格

2. 变量的引用是用 $ 符号加上变量名

echo ${a}

变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,建议给所有变量加上花括号,这是个好习惯,既便于阅读,又不易出错。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11830691.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存