标签: echo

如何优先打印动态字符串 - 一个班轮

所以我想构造一个命令来优先打印动态字符串。

我有变量:

a=first
b=second/third/fourth/...
Run Code Online (Sandbox Code Playgroud)

我想运行sed命令b

sed  -e 's/\//_/g'
Run Code Online (Sandbox Code Playgroud)

我得到

second_third_fourth_
Run Code Online (Sandbox Code Playgroud)

然后我想打印,a/${b}所以它变成了`

first/second_third_fourth_
Run Code Online (Sandbox Code Playgroud)

像这样的东西:

echo first/(second/third/fourth... | sed  -e 's/\//_/g' )
Run Code Online (Sandbox Code Playgroud)

我是 bash 脚本的新手,需要为 CI 环境执行此操作。

bash sed echo text-formatting

0
推荐指数
1
解决办法
59
查看次数

echo -e 行为

与 echo 一起使用的 -e 开关使其能够理解转义序列,如下所示:

[root@localhost~]#  echo -e 'hello\b\bhi'
helhi
[root@localhost~]# 
Run Code Online (Sandbox Code Playgroud)

但是,转义序列似乎在下面的代码段中被跳过了:

[root@localhost~]# echo -e 'hello\b\b'
hello
[root@localhost~]# 
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助理解上述代码片段的行为吗?

当上面相同的代码片段与“-n”开关结合执行时,它起作用了!(当然,使用 -n 行为删除换行符)

[root@localhost~]# echo -n -e 'hello\b\b'
hel[root@localhost~]# 
Run Code Online (Sandbox Code Playgroud)

问候

shell rhel echo

0
推荐指数
1
解决办法
1124
查看次数

为什么zsh中IFS需要echo才能生效?

我正在尝试PATH使用 zsh 5.8 将 的成员读入数组。我习惯使用 Bash,通常可以执行以下操作:

IFS=: p=($PATH)
Run Code Online (Sandbox Code Playgroud)

然而,对于 zsh,这实际上给了我一个只有一项的数组。如果我改写:

IFS=: p=($(echo $PATH))
Run Code Online (Sandbox Code Playgroud)

然后我得到正确的元素数量。这是为什么?

zsh array echo

0
推荐指数
1
解决办法
475
查看次数

如何在 bash 中使用 awk 和 echo

如果我在 bash 脚本(类似于此脚本)中运行以将内容发送到文件:

sudo ./bar.sh > foo
Run Code Online (Sandbox Code Playgroud)

内容bar.sh:

echo 'for pid in $(ps -ef | grep "smbd" | awk '{print $2}'); do kill -9 $pid &> /dev/null; done'
Run Code Online (Sandbox Code Playgroud)

foo 输出:

for pid in $(ps -ef | grep "smbd" | awk {print }); do kill -9 $pid &> /dev/null; done
Run Code Online (Sandbox Code Playgroud)

$2是迷失在外面。

预期输出:

for pid in $(ps -ef | grep "smbd" | awk '{print $2}'); do kill -9 $pid &> /dev/null; done
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到它?

bash awk echo

0
推荐指数
1
解决办法
1万
查看次数

如何在 bash 脚本中正确换行和连接字符串

我有一个 Bash 脚本,具有记录带有时间和状态的消息的功能,并且我只想保留我的脚本 80 列:

#!/bin/bash

log_message() {
  echo "[$(date)]-[$1] : $2" >> log.txt
}

varName="John Doe"

# line break to not exceed 80 columns
log_message "WARNING" "I am "${varName}" and i want to limit this line \
to 80 columns"
Run Code Online (Sandbox Code Playgroud)

日志文件中的结果不符合预期:

[Fri Jun 24 13:50:12 CEST 2022]-[WARNING] : I am John
Run Code Online (Sandbox Code Playgroud)

在 Bash 中执行此操作的正确方法是什么?

bash string echo

0
推荐指数
1
解决办法
593
查看次数

反引号中的嵌套 echo 命令

我想知道为什么会在我的外壳中打印额外的回声。我使用的是bash4.2.46(1) 版。

echo `echo `echo $SHELL``
Run Code Online (Sandbox Code Playgroud)

一个有趣的问题是,如果我'``'$()它替换不会打印额外的回声:

echo $(echo `echo $SHELL`)
Run Code Online (Sandbox Code Playgroud)

我发现它以奇数echo命令号打印额外的回声:

echo `echo `echo `echo `echo $SHELL````
Run Code Online (Sandbox Code Playgroud)

shell bash shell-script echo command-substitution

-1
推荐指数
1
解决办法
5761
查看次数

反斜杠无法通过 echo 命令发送铃声

echo命令不想解释反冲转义(附加 -e 选项)。例如,我希望它响铃: echo -e \a

什么也没发生,除了打印: a\a

如何打开口译或如何解决?

bash echo escape-characters

-1
推荐指数
1
解决办法
872
查看次数

为什么“echo abcde | echo”没有显示结果?

我将一个 echo 命令通过管道传输到另一个

 echo a b c d e f g h i | echo 

 echo $?
0
Run Code Online (Sandbox Code Playgroud)

与我的直觉相反,没有输出,但也没有返回错误。我预期,that echo a b c d | echo 只是一个不必要的冗余替代echo a b c d。但事实并非如此,为什么争论在通过管道的途中丢失了?

command-line pipe echo

-3
推荐指数
1
解决办法
391
查看次数