我试图了解逻辑运算符优先级在 bash 中是如何工作的。例如,我会期望以下命令不会回显任何内容。
true || echo aaa && echo bbb
Run Code Online (Sandbox Code Playgroud)
然而,出乎我的意料,bbb被打印出来了。
有人可以解释一下,我如何理解bash 中的复合&&和||运算符?
在我的 Bash 环境中,我使用包含空格的变量,并在命令替换中使用这些变量。
引用我的变量的正确方法是什么?如果这些是嵌套的,我该怎么做?
DIRNAME=$(dirname "$FILE")
Run Code Online (Sandbox Code Playgroud)
或者我在替换之外引用?
DIRNAME="$(dirname $FILE)"
Run Code Online (Sandbox Code Playgroud)
或两者?
DIRNAME="$(dirname "$FILE")"
Run Code Online (Sandbox Code Playgroud)
还是我使用反引号?
DIRNAME=`dirname "$FILE"`
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?以及如何轻松检查报价是否正确?
我在 PS1 提示中使用了几种颜色,例如
\033]01;31\] # pink
\033]00m\] # white
\033]01;36\] # bold green
\033]02;36\] # green
\033]01;34\] # blue
\033]01;33\] # bold yellow
Run Code Online (Sandbox Code Playgroud)
在哪里可以找到我可以使用的颜色代码列表?
我查看了Colorize Bash Console Color,但它没有回答我关于实际代码列表的问题。
如果还有一个更易读的表格,那就太好了。
我搜索了 SO,发现将以下字符串大写是可行的
str="Some string"
echo ${str^^}
Run Code Online (Sandbox Code Playgroud)
但是我试图在命令行参数上做类似的事情,这给了我以下错误
#!/bin/bash
## Output
echo ${1^^} ## line 3: ${1^^}: bad substitution
echo {$1^^} ## No error, but output was still smaller case i.e. no effect
Run Code Online (Sandbox Code Playgroud)
我们怎么能做到这一点?
我刚刚看到这个写下来;
$ some-command >| /tmp/output.txt
Run Code Online (Sandbox Code Playgroud)
标准重定向中使用垂直管道将一个命令的输出“管道”到另一个命令>|,实际上完全没用,因为它与>在这种情况下相同?
有没有办法在 bash 中暂时暂停历史跟踪,从而进入一种“隐身”模式?我正在我的终端中输入一些我不想记录的敏感财务信息。
我有 Linux ( RH 5.3 ) 机器
我需要添加/计算 10 天加上日期,这样我就会得到新的日期(到期日期))
例如
# date
Sun Sep 11 07:59:16 IST 2012
Run Code Online (Sandbox Code Playgroud)
所以我需要得到
NEW_expration_DATE = Sun Sep 21 07:59:16 IST 2012
Run Code Online (Sandbox Code Playgroud)
请建议如何计算新的到期日期(使用 bash 、 ksh 或操纵日期命令?)
我想生成一个名为example.file. 我可以用
touch example.file
Run Code Online (Sandbox Code Playgroud)
但我希望文件大小正好为 24MB。我已经检查了touch的联机帮助页,但是没有这样的参数。有没有一种简单的方法来生成一定大小的文件?
例如:
[root@ip-10-0-7-125 ~]# history | grep free
594 free -m
634 free -m | xargs | awk '{print "free/total memory" $17 " / " $ 8}'
635 free -m
636 free -m | xargs | awk '{print "free/total memory" $9 " / " $ 10}'
736 df -h | xargs | awk '{print "free/total disk: " $11 " / " $9}'
740 df -h | xargs | awk '{print "free/total disk: " $11 " / " $8}'
741 free -m …Run Code Online (Sandbox Code Playgroud) 我想在一个空的环境中运行一个程序(即没有设置 envariables)。如何在 bash 中做到这一点?