相关疑难解决方法(0)

我们什么时候需要围绕shell变量的花括号?

在shell脚本中,我们{}何时在扩展变量时使用?

例如,我见过以下内容:

var=10        # Declare variable

echo "${var}" # One use of the variable
echo "$var"   # Another use of the variable
Run Code Online (Sandbox Code Playgroud)

是否存在显着差异,还是只是风格?一个比另一个更受欢迎吗?

syntax bash shell curly-braces

602
推荐指数
6
解决办法
22万
查看次数

如何使用'cut'找到最后一个字段

使用sed使用awk,当字段数量未知或每行更改时,如何获取最后一个字段? cut

linux bash cut

266
推荐指数
7
解决办法
22万
查看次数

何时在shell变量周围包装引号?

有人能告诉我是否应该在shell脚本中包含变量的引号?

例如,以下是正确的:

xdg-open $URL 
[ $? -eq 2 ]
Run Code Online (Sandbox Code Playgroud)

要么

xdg-open "$URL"
[ "$?" -eq "2" ]
Run Code Online (Sandbox Code Playgroud)

如果是这样,为什么?

unix linux bash shell quotes

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

Bash:如何获得符号链接的真实路径?

是否有可能在/ usr/local/bin文件夹中执行符号链接的文件,以获取原始脚本的绝对路径?好吧,..我知道原始文件在哪里,我知道它因为我正在链接它.但是,即使我移动原始源代码(和符号链接),我希望这个脚本正常工作.

#!/bin/bash
echo "my path is ..."
Run Code Online (Sandbox Code Playgroud)

bash symlink

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

使用 GitHub Actions 循环多个文件

我的存储库的几个子目录中有多个.md文件。它们都有相同的命名约定,例如seminar1/slides.mdseminar2/slides.md等。这些*.md文件需要使用 pandoc 进行处理。我希望每次提交到存储库时都会自动执行此操作,并决定将其实现为在 Github 上运行的操作。

我已将以下工作流程创建为 .yml 文件,GitHub 将其识别为操作。如果我有一个子目录(例如 ),它会起作用/seminar1/*.md,但如果有更多子目录,它就会失败。

name: Make slides

on: push

jobs:
  convert_via_pandoc:
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@v2
        with:
          ref: slides
      - run: |
          echo "::set-env name=FILELIST::$(printf '"%s"' seminar*/*.md)"
      - uses: docker://pandoc/latex:2.9
        with:
          args: -t beamer --output=${{env.FILELIST}}.pdf ${{env.FILELIST}}
      - uses: actions/upload-artifact@v2
        with:
          name: seminar-slides
          path: seminar*/*.md.pdf        
Run Code Online (Sandbox Code Playgroud)

如何让脚本检测所有文件seminar*/*.md并对其进行操作?

另外,我需要一些一般可用性方面的帮助:

  1. 所有脚本都从根目录运行。这意味着我必须修改 .md 文件的内容以包含该目录,例如,而seminar1/bridge.jpg不仅仅是包含bridge.jpg. 如何更改每个的工作目录$env.FILELIST
  2. 如何从文件名中删除扩展名并在 中使用它$env.FILELIST

bash pandoc github-actions

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

路径中的文件目录

在我的shell脚本中,我有一个文件路径的字符串.
我想删除文件部分,只获取目录的路径.

例如,如果路径是:path="/var/www/index.html"我想得到/var/www/.

是否有与word指示符类似的tail选项?

谢谢

bash shell

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

标签 统计

bash ×6

shell ×3

linux ×2

curly-braces ×1

cut ×1

github-actions ×1

pandoc ×1

quotes ×1

symlink ×1

syntax ×1

unix ×1