标签: shell-script

为什么这个脚本显示目录中的所有文件,而不仅仅是 PDF 文件?

我编写了下面的脚本来查找给定目录中的 PDF 文件数。但是,它会显示目录中的所有文件:

#!bin/bash
message="."
message1="*.pdf"

ls -al $message $message1 
Run Code Online (Sandbox Code Playgroud)

脚本有什么问题?

ls bash shell-script wildcards

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

这个shell脚本函数是什么意思

有人可以用一个例子告诉我每一行的含义是什么,我不明白为什么使用正则表达式,甚至 [!0122...]

#!/bin/sh
is_integer ()
{
    case "${1#[+-]}" in
        (*[!0123456789]*) return 1 ;;
        ('')              return 1 ;;
        (*)               return 0 ;;
    esac
}
Run Code Online (Sandbox Code Playgroud)

shell shell-script

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

如何退出函数而不退出文件

嗨,我正在 Unix 中创建一个带有函数的子 shell,但是当我执行一个函数时,它完成了这个过程。我想知道如何在不退出子外壳的情况下退出函数。

terminal shell-script function

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

bash + 使用正则表达式比较字符串

在我的 bash 脚本中我想验证字符串是否是磁盘

所以我做了下面的例子

if [[ $disk =~ sd{a..z} ]];then
echo "we found a disk - $disk
.
.
.
.
fi
Run Code Online (Sandbox Code Playgroud)

但实际上表达式不识别 $disk ( $disk 可以是例如 sda sdb sdc sdd 等)

例如

disk=sdb
[[ $disk =~ sd{a..z} ]] && echo "$disk is real disk"
Run Code Online (Sandbox Code Playgroud)

也不如

[[ $disk =~ 'sd{a..z}' ]] 
Run Code Online (Sandbox Code Playgroud)

我哪里错了?

linux bash shell-script regular-expression

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

为什么在这个 while 循环实例中“继续”不起作用?

我正在尝试学习 Unix 并练习循环。有人可以解释为什么在遇到continue语句后输出被暂停吗?

之后输出暂停Count : 4,我用Ctrl+退出C

代码:

COUNT=0

while [ $COUNT -lt 10 ]
do
  if [ $COUNT = 5 ]
  then
     continue
  fi
  echo "Count : $COUNT"
  ((COUNT++))
done

echo "while loop finished"
exit 0
Run Code Online (Sandbox Code Playgroud)

shell-script

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

在 Bash 中函数后的数字有什么作用?

我遇到过这样的代码:

function cursorBack() {
   echo -en "\033[$1D"
}
...
tput civis 
...
cursorBack 1
Run Code Online (Sandbox Code Playgroud)

号码有什么作用?

bash shell-script

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

使用 shell 脚本将 Json 转为 Table 格式

sfdx 差异 | 三通结果.json ;

在这里,我得到 json 格式的结果/响应,并将其添加到 result.json 文件中。下面是我得到的 json

{
  "status": 3,
  "result": {
    "source": {
      "type": "folder",
      "origin": "/source"
    },
    "target": {
      "type": "folder",
      "origin": "/target"
    },
    "difs": [
      {
        "type": "In Progress",
        "entity": "Phone",
        "result": "added"
      },
      {
        "type": "Completed",
        "entity": "SMS",
        "result": "added"
      },
      {
        "type": "Scheduled",
        "entity": "Web",
        "result": "added"
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

我需要以表格格式显示它..就像 在此输入图像描述

我们有什么办法可以做到这一点。请帮忙,因为我对 shell 脚本很陌生

shell-script json

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

不要将命令包裹在 []/[[]] 中)

我只是学习 shell,我使用 vscode 和 shell-check 来检查 systax。这是我正在做的一个例子:我想检查某个文本文件中存在的字符串

#!/usr/bin/bash
Echo "Enter user"
if [ $grep -q binhqq "text.txt"] ; then
  echo "Found"
fi
Run Code Online (Sandbox Code Playgroud)

但是他们警告我Don't wrap commands in []/[[]]),为什么我有那个警告,非常感谢你

shell shell-script

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

"[: 参数太多" if 语句 if [ "$FILE" == "XXXX"* ] || [“$FILE”==“YYYY”*]|| [“$FILE”==“ZZZZ”*]||

我不确定下面的脚本出了什么问题,即使我删除了空格,但我仍然遇到错误“[:参数太多”

oldPlugin="/old/plugins/"
cd "$oldPlugin" || true
for FILE in *; do
  if [ "$FILE" == "csharp-plugin"* ] || [ "$FILE" == "flex-plugin"* ] || [ "$FILE" == "go-plugin"* ] || [ "$FILE" == "html-plugin"* ] || [ "$FILE" == "iac-plugin"* ] || [ "$FILE" == "jacoco-plugin"* ] || [ "$FILE" == "java-plugin"* ] || [ "$FILE" == "javascript-plugin"* ] || [ "$FILE" == "kotlin-plugin"* ] || [ "$FILE" == "php-plugin"* ] || [ "$FILE" == "python-plugin"* ] || [ "$FILE" …
Run Code Online (Sandbox Code Playgroud)

shell-script

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

shell 脚本在 devcontainer 内运行语法错误:“(”意外

下面的 test.sh 在 Windows 命令提示符下运行,按预期工作。但是当在 devcontainer 内运行时它失败了

files=(
    "first" 
    "second"
    )

for i in "${files[@]}"
do    
    echo $i 
done   
Run Code Online (Sandbox Code Playgroud)

在 devcontainer 中运行时出错

test.sh:1:语法错误:“(”意外

在此输入图像描述

请指导我如何解决此错误

shell-script

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