我需要从另一个脚本中获取参数,并去掉引号。用一行脚本处理。 AAA=$(sed -n 's/^AAA=//p' ./aa.sh) AAA=${AAA//\"/}
时间: 2023-09-14 22:08:15 浏览: 38
你的第一个问题是:我需要从另一个脚本中获取参数,并去掉引号。用一行脚本处理。
正确答案是:
```
AAA=$(sed -n 's/^AAA=//p' ./aa.sh)
AAA=${AAA//\"/}
```
第一行命令使用sed从aa.sh文件中提取AAA参数值,并将其存储到变量AAA中。
第二行命令使用bash的字符串替换功能,将AAA变量中的所有引号替换为空字符串,从而去掉了引号。
相关问题
sed -i '/^=.*=$/s/=/-/g' ./Today.rep中的/^=.*=$/s作用
在`sed`命令中,`/^=.*=$/s/=/-/g`是一个正则表达式替换的操作。我将对其进行解释:
- `^=.*=$`:这是一个正则表达式模式,用于匹配以`=`开始和结束的行。其中`^`表示行的开头,`.*`表示匹配任意字符(除换行符外)任意次数,`$`表示行的结尾。
- `s/=/-/g`:这是替换操作的命令部分。其中`s`表示进行替换操作,`/=/-`表示将等号(`=`)替换为连字符(`-`),`g`表示全局替换(即一行中的所有匹配都会被替换)。
因此,整个命令的含义是:对于以等号开始和结束的行,在该行中将所有的等号(`=`)替换为连字符(`-`)。
例如,对于输入文件`Today.rep`内容如下:
```
=Header=
This is a test file.
=Content=
Sample content here.
=Footer=
End of file.
```
应用命令`sed -i '/^=.*=$/s/=/-/g' ./Today.rep`后,文件内容将被修改为:
```
-Header-
This is a test file.
-Content-
Sample content here.
-Footer-
End of file.
```
可以看到,所有以等号开始和结束的行中的等号(`=`)都被替换为连字符(`-`)。
如何在shell脚本里使用ls -t /home/| sed -n '10,$p' ,多个shell命令组合使用
要在Shell脚本中使用多个命令组合,你可以使用管道(|)将它们连接起来。在你提供的示例中,你使用了两个命令:`ls -t /home/` 和 `sed -n '10,$p'`。这两个命令通过管道连接起来,可以按照以下方式在Shell脚本中使用:
```bash
#!/bin/bash
ls -t /home/ | sed -n '10,$p'
```
将以上代码保存为一个脚本文件(比如 `script.sh`),然后通过运行 `./script.sh` 来执行脚本。这将列出 `/home/` 目录下的文件和目录,并使用 `sed` 命令来输出从第10行到最后一行的内容。
请注意,这只是一个示例,具体取决于你的需求和目标。你可以根据具体情况自由组合和调整命令。