标签: bash

shell 逻辑运算符 &&、|| 的优先级

我试图了解逻辑运算符优先级在 bash 中是如何工作的。例如,我会期望以下命令不会回显任何内容。

true || echo aaa && echo bbb
Run Code Online (Sandbox Code Playgroud)

然而,出乎我的意料,bbb被打印出来了。

有人可以解释一下,我如何理解bash 中的复合&&||运算符?

shell bash

173
推荐指数
3
解决办法
11万
查看次数

在 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)

这样做的正确方法是什么?以及如何轻松检查报价是否正确?

shell bash quoting command-substitution

173
推荐指数
3
解决办法
15万
查看次数

我可以在 PS1 提示中使用哪些颜色代码?

我在 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,但它没有回答我关于实际代码列表的问题。

如果还有一个更易读的表格,那就太好了。

另见https://unix.stackexchange.com/a/127800/10043

colors bash prompt

173
推荐指数
4
解决办法
22万
查看次数

如何大写命令行参数?

我搜索了 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)

我们怎么能做到这一点?

bash string case-sensitivity

163
推荐指数
4
解决办法
27万
查看次数

Bash: ">|" 有什么作用 做?

我刚刚看到这个写下来;

$ some-command >| /tmp/output.txt
Run Code Online (Sandbox Code Playgroud)

标准重定向中使用垂直管道将一个命令的输出“管道”到另一个命令>|,实际上完全没用,因为它与>在这种情况下相同?

bash pipe io-redirection

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

在给定的 shell 上临时挂起 bash_history?

有没有办法在 bash 中暂时暂停历史跟踪,从而进入一种“隐身”模式?我正在我的终端中输入一些我不想记录的敏感财务信息。

bash command-history

161
推荐指数
4
解决办法
9万
查看次数

如何添加 X 天日期并获取新日期?

我有 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 或操纵日期命令?)

linux bash shell-script date

154
推荐指数
4
解决办法
37万
查看次数

生成一定大小的文件?

我想生成一个名为example.file. 我可以用

touch example.file
Run Code Online (Sandbox Code Playgroud)

但我希望文件大小正好为 24MB。我已经检查了touch的联机帮助页,但是没有这样的参数。有没有一种简单的方法来生成一定大小的文件?

command-line bash files

153
推荐指数
4
解决办法
17万
查看次数

有没有办法从历史中执行命令?

例如:

[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)

bash command-history

153
推荐指数
5
解决办法
10万
查看次数

如何在 bash 的干净环境中运行程序?

我想在一个空的环境中运行一个程序(即没有设置 envariables)。如何在 bash 中做到这一点?

bash environment-variables

151
推荐指数
5
解决办法
10万
查看次数