我是 Linux 新手。有一些事情我不清楚。
echo "" > logfile和 和有> logfile什么区别?
当我运行第一个时,日志文件大小不会变为零,并且将创建具有 1 个字节大小的同名文件。对于第二个,日志文件大小将变为零,并且将创建具有 0 字节大小的同名文件。
在什么情况下应该使用不同的命令?
对我来说,当我想释放日志文件时,我会使用它。
我有一个数据文件,内容如下:
department: customer service section: A
department: marketing section: A
department: finance section: A
Run Code Online (Sandbox Code Playgroud)
当我阅读每一行时,我会使用cut命令提取部门名称。不幸的是,程序会自动trim将多余的空间全部删除,因此我错误地剪切了部门名称。
cat dept.dat | while read line
do
echo $line
echo $line | cut -c 12-29
done
Run Code Online (Sandbox Code Playgroud)
例如原始行是:
department: marketing section: A
Run Code Online (Sandbox Code Playgroud)
虽然程序将此行视为:
department: marketing section: A
Run Code Online (Sandbox Code Playgroud)
如何在不修剪所有冗余空间的情况下读取该行?
我通过将一些值“回显”到另一个 csv 中来将数据输入到 csv 中。
我试过 echo "" 并在下一行 echo "values" 但我得到间歇性的空行..
我只在开始时需要空行....
我明白那个
sudo cd /directory
Run Code Online (Sandbox Code Playgroud)
将返回:
sudo: cd: command not found
Run Code Online (Sandbox Code Playgroud)
因为 cd 是内置的 shell 而不是二进制文件。但是,为什么
sudo echo 'this is a test'
Run Code Online (Sandbox Code Playgroud)
工作正常?
这里到底发生了什么?如果不是shell,如何sudo找到命令echo?
有没有办法将值回传到命令中?例如,如果我可以command.pl并且想要输入response,然后y确认(因为它没有自动确认的方法)?
我试过echo "y" | echo "response" | ./command.pl但它不起作用,因为管道的顺序是从左到右。本质上,我需要先运行一个管道,然后再运行下一个命令。有括号或引号或其他东西的技巧吗?
有什么方法可以在控制台上打印彩色文本,它会像一些问候语更改颜色的贺卡一样,不断动态地改变其颜色(有或没有指定的时间间隔)?
我知道使用打印彩色文本
echo eg: echo -e "\e[1;34m Hi dude, Welcome to the Matrix \e[0m"
Run Code Online (Sandbox Code Playgroud)
但我希望这段文字不断改变颜色。
真的有可能吗?
我有一个名为 file.txt 的文件,它有一些内容说“abcdef”,当cat < file.txt我得到输出 abcdef 但当我这样做时echo < file.txt,没有输出返回。为什么输入重定向不适用于 echo 而适用于 cat?
我一直认为 bash 在不带或带双引号的情况下对反斜杠的处理方式相同,但我错了:
[user@linux ~]$ echo "foo \ "
foo \
[user@linux ~]$ echo foo \ # Space after \
foo
Run Code Online (Sandbox Code Playgroud)
所以我认为在使用双引号时总是会打印反斜杠,但是:
[user@linux ~]$ echo "foo \" "
foo "
[user@linux ~]$ echo "foo \\ "
foo \
Run Code Online (Sandbox Code Playgroud)
为什么显示第一行代码中的反斜杠?
可执行文件 (cURL) 的输出包含 \n。如何用换行符显示这样的输出?
假设一个可执行文件的输出是tCL\n1523 memo\n,管道到 printf 不显示换行符。
$ echo "tCL\n1523 memo\n"
tCL\n1523 memo\n
$
$ printf "tCL\n1523 memo\n"
tCL
1523 memo
$
$ echo "tCL\n1523 memo\n" | xargs -0 printf '%s'
tCL\n1523 memo\n
$
$ echo "tCL\n1523 memo\n" | awk '{ printf "%s", $0 }
tCL\n1523 memo\n
Run Code Online (Sandbox Code Playgroud) 我正在阅读 Unix 中的 echo 命令,但我在 -e 选项中对反斜杠 ( \) 转义字符感到困惑,我运行了以下两个示例:
echo "hello\\\\world"
Run Code Online (Sandbox Code Playgroud)
输出: hello\\world
现在使用 -e 运行相同的命令:
echo -e "hello\\\\world"
Run Code Online (Sandbox Code Playgroud)
输出: hello\world
那么带和不带-e选项的反斜杠字符的含义是什么?
问候