小编Max*_*kyi的帖子

什么是 shell 中的百分号提示?

在观看视频时,我看到了以下内容:

% more tinyUF.txt
10
4 3
3 8
6 5
Run Code Online (Sandbox Code Playgroud)

命令%前的这个标志是什么more

command-line shell prompt

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

在文件夹/项目上运行 chmod, chown 命令需要什么权限?

我一直以 sudo 用户身份运行 chmod/chown 命令。但是今天我想知道如果我不使用sudo,我需要什么权限才能chmod/chown在文件夹/文件上实际执行命令?我试过在谷歌上搜索这个问题,但没有任何内容专门回答这个问题。

linux sudo chmod chown

15
推荐指数
1
解决办法
9143
查看次数

`if` 和 `then` 实际上是程序

我读过分号用于分隔程序:

$ echo 3; ls -la
Run Code Online (Sandbox Code Playgroud)

这是否意味着if,thenelse是单独的程序?

$ if [ $VARIABLE == abcdef ] ; then echo yes ; else echo no ; fi
Run Code Online (Sandbox Code Playgroud)

这个问题与分号无关。

shell bash shell-script

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

这是什么形式的变量=$(...)

以下是什么意思:

basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
Run Code Online (Sandbox Code Playgroud)

我对这部分特别感兴趣:

varible=$(...)
Run Code Online (Sandbox Code Playgroud)

我知道括号用于执行子流程,但是如果将它们与 一起使用$呢?

shell

9
推荐指数
3
解决办法
1843
查看次数

一个命令的多个别名

我需要为一个命令设置多个别名。我是这样做的:

alias lwbc='$(npm bin)/webpack'
alias lwpc=lwbc
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?

alias

7
推荐指数
1
解决办法
2163
查看次数

`sed: -e expression #1, char 4: unknown command:` 但行尾没问题

我想删除set -x文件“$(which tsc)”中包含的行,但出现错误:

$ sed -i ".bak" 'set -x' "$(which tsc)"
sed: -e expression #1, char 1: unknown command: `.'
Run Code Online (Sandbox Code Playgroud)

在这里检查了解决方案,但我的行终止符是LF.

shell sed

6
推荐指数
1
解决办法
2464
查看次数

Bash 如何获取执行程序的输出?

例如,当我在Bash 中执行程序时[ls][2],它会将其输出发送到标准输出( fd &1)。并且执行程序的输出显示在终端中。Bash/终端如何获取ls命令的输出?

bash file-descriptors stdout

5
推荐指数
1
解决办法
3847
查看次数

/usr/bin/ls: /usr/bin/ls: 无法执行二进制文件

git bash在 Windows 上使用。我想lsbash. 我可以ls像这样单独运行:

$ ls
f1  f2
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用 时bash,出现错误:

$ bash ls
/usr/bin/ls: /usr/bin/ls: cannot execute binary file
Run Code Online (Sandbox Code Playgroud)

但是如果我创建我的脚本它工作正常:

$ echo "echo \$@" > my.sh && bash my.sh
Run Code Online (Sandbox Code Playgroud)

可能是什么问题?

shell bash

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

为什么不抑制文件全局扩展

我有以下脚本my.sh

echo $@
Run Code Online (Sandbox Code Playgroud)

现在我想查看文件 glob 扩展,所以我喜欢这个并且它工作正常:

$ bash my.sh *
$ f1 f2 my.sh
Run Code Online (Sandbox Code Playgroud)

现在,我尝试使用此答案中描述的技术抑制扩展:

$ bash my.sh "*"
$ bash my.sh \*
Run Code Online (Sandbox Code Playgroud)

但我仍然得到所有文件的列表作为输出。为什么?

shell quoting wildcards

5
推荐指数
1
解决办法
197
查看次数

具有多个由空格分隔的参数的 printf 如何工作

我有以下printf功能:

$ printf '%s %s %s\t%s\n' 100644 blob 8e1e f1.txt 100644 blob 9de7 f2.txt | git mktree
Run Code Online (Sandbox Code Playgroud)

谁能解释一下它产生了什么以及为什么?我希望%s每个参数字符串都有相同数量的格式选项,但我这里有更多的参数字符串。

shell printf

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

env_variable=value && 命令到底做什么

我知道我可以通过在前面添加环境变量来将其传递给命令,如下所示:

env_variable=value command
Run Code Online (Sandbox Code Playgroud)

但今天我不小心&&在变量和命令之间添加了:

env_variable=value && command exactly
                    ^
                    ^
Run Code Online (Sandbox Code Playgroud)

我很好奇它与正确的方法有什么不同。我知道您可以使用&&将命令链接在一起。但有趣的是,该命令没有收到变量,为什么呢?如果有人解释第二个变体与第一个变体到底有何不同以及为什么命令没有看到该变量,我将不胜感激。谢谢

shell shell-script

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