标签: shell

运行被别名隐藏的命令

假设我在 bash 中有以下别名 - alias ls='ls --color=auto'- 我想在ls没有选项的情况下调用普通。这样做的唯一方法是取消别名,执行命令然后再次别名吗?或者有一些漂亮的技巧或解决方法?

shell bash alias

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

$VAR vs ${VAR} 以及引用或不引用

我可以写

VAR=$VAR1
VAR=${VAR1}
VAR="$VAR1"
VAR="${VAR1}"
Run Code Online (Sandbox Code Playgroud)

最终结果对我来说似乎都差不多。我为什么要写一个或另一个?这些中的任何一个都不是便携式/ POSIX 吗?

shell shell-script environment-variables posix quoting

184
推荐指数
3
解决办法
8万
查看次数

如何检查 shell 是否是登录/交互式/批处理

我想我了解交互式、登录和批处理 shell 之间的区别。请参阅以下链接以获取更多帮助:

我的问题是,如果我在交互式、登录或批处理 shell 上,如何使用命令/条件进行测试?

我正在寻找一个命令或条件(返回truefalse),我也可以放在 if 语句中。例如:

if [[ condition ]]
   echo "This is a login shell"
fi
Run Code Online (Sandbox Code Playgroud)

shell

182
推荐指数
9
解决办法
11万
查看次数

批量重命名文件

我有一个充满图像的目录:

image0001.png
image0002.png
image0003.png
...
Run Code Online (Sandbox Code Playgroud)

我想要一个单线将它们重命名为(比如说)。

0001.png
0002.png
0003.png
...
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

shell bash rename

181
推荐指数
7
解决办法
20万
查看次数

将文件夹内容上移一级

我有一个解压缩的目录,但在一个文件夹中。如何将内容上移一层?我正在通过 SSH 访问 CentOS。

shell rename

181
推荐指数
4
解决办法
35万
查看次数

监视文件夹中是否有新文件的脚本?

如何立即检测何时将新文件添加到脚本中的文件夹?我希望脚本在文件夹中创建文件后立即处理文件。除了安排每分钟左右检查新文件的作业之外,还有其他方法吗?

shell filesystems monitoring directory files

178
推荐指数
7
解决办法
34万
查看次数

shell 脚本中的变量是否有命名约定?

大多数语言都有变量的命名约定,我在 shell 脚本中看到的最常见的样式是MY_VARIABLE=foo. 这是惯例还是仅适用于全局变量?脚本本地的变量呢?

shell bash shell-script variable

176
推荐指数
3
解决办法
10万
查看次数

我可以同时将输出重定向到日志文件和后台进程吗?

我可以同时将输出重定向到日志文件和后台进程吗?

换句话说,我可以做这样的事情吗?

nohup java -jar myProgram.jar 2>&1 > output.log &
Run Code Online (Sandbox Code Playgroud)

或者,这不是合法的命令吗?或者,我是否需要手动将其移动到后台,如下所示:

java -jar myProgram.jar 2>$1 > output.log
jobs
[CTRL-Z]
bg 1
Run Code Online (Sandbox Code Playgroud)

shell bash shell-script

176
推荐指数
5
解决办法
36万
查看次数

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万
查看次数