AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-264385

Jim's questions

Martin Hope
Jim
Asked: 2019-08-29 12:02:33 +0800 CST

bash 文件包含可执行/二进制代码

  • 0

我找到了这个工具,当我下载它时,它是一个包含二进制代码的 bash 可执行文件。
首先,我不知道这是可能的。有谁知道这可以做吗?我也不确定这通常有多安全,因为我不能确定 bash 文件包含什么

bash shell-script
  • 1 个回答
  • 461 Views
Martin Hope
Jim
Asked: 2018-07-17 23:40:05 +0800 CST

将布尔标志传递给函数?

  • 11

我有一个函数,它取决于功能更改的参数。
我知道我可以做到:

function foo {  
  PARAM1=$1  
  PARAM2="$2"  
  VAR=$3  
  if[[ -z "$VAR" ]]; then  
   # code here  
  else  
   # other code here  
  fi  
}  

我想知道是否有更适合 bash 的方法。这会起作用,但我不想有类似的东西

foo "x" "y" "blah"  
foo "x" "y" "true"  
foo "y" "y" "1"

都是等价的。

是否有更适合 Bash 的方法?

bash shell-script
  • 3 个回答
  • 24079 Views
Martin Hope
Jim
Asked: 2018-07-07 07:01:47 +0800 CST

如何为json转义换行符?

  • 9

我有一个包含换行符的文件。
我通过将文件发布curl到将其解析为 json 的服务器。
由于换行符,它拒绝请求。
但是当我这样做时:

$(echo "$MY_DATA" | sed 's/$//' | tr -d '\n\r')  

它有效,但新行字符消失了。
如何转义文本以保留换行符?
我试过了tr '\n' '\\n',sed 's/\n/\\n/g但两种方法都没有奏效

bash shell-script
  • 2 个回答
  • 18444 Views
Martin Hope
Jim
Asked: 2018-06-08 14:03:03 +0800 CST

获取特定修订/分支之间的文件差异

  • 1

我有 2 个不同的分支 A、B,它们具有文件 X 的(略有不同)版本。
我有兴趣获取在分支 B 中添加一些特定模式的提交。
我大致做的是:diff files| grep "^\+" | grep "$PATTERN" | for loop grep -n.. do git blame -L done
这有效,但我想知道我是否我正在重新发明/绕过 git 很容易支持的东西。
有没有更好的办法?

grep git
  • 1 个回答
  • 58 Views
Martin Hope
Jim
Asked: 2018-06-08 10:58:03 +0800 CST

为什么使用数组和 for 循环会将行分成 2 行?[复制]

  • -1
这个问题在这里已经有了答案:
如何遍历文件的行? (6 个答案)
为什么我的 shell 脚本会因空格或其他特殊字符而阻塞? (6 个答案)
4年前关闭。

为什么以下给出了我正在搜索的行:

grep '<appointment-id internal:ref=1.2.3/>' test.xml  
OUTPUT is <appointment-id internal:ref=1.2.3/>  

虽然以下将其分成两行?

a=($(grep '<appointment-id internal:ref=1.2.3/>' test.xml))  
for i in "${a[@]}"; do  
    echo "checking $i"   
    grep  -n "$i" delete.xml
done    

输出是:

checking <appointment-id
checking internal:ref=1.2.3/>

该文件是:

<note>  
    <to>Jim</to>  
    <from>John</from>  
    <heading>Reminder</heading>  
    <body>Some text</body>  
    <appointment-id internal:ref=1.2.3/> 
</note>
bash shell-script
  • 1 个回答
  • 67 Views
Martin Hope
Jim
Asked: 2018-06-06 03:16:57 +0800 CST

在单引号内插值

  • 2

我有以下内容:

COMMENT="A random comment"  
TEXT_JSON='{"person" : "Jim","comment" : "$COMMENT"}'    
echo "$TEXT_JSON" | jq .  

这打印

{  
  "person": "Jim",  
  "comment": "$COMMENT"  
} 

这不是我想要的。如何在此处插入字符串?

string quoting
  • 2 个回答
  • 3112 Views
Martin Hope
Jim
Asked: 2018-05-22 23:53:19 +0800 CST

从不使用 getopt 的脚本中传递 getopt 的参数

  • 0

我有一个脚本(我们称之为scriptC),用于getopt解析短选项和长选项并且工作正常。

该脚本的调用方式如下:
scriptA运行使用适当参数的scriptB调用。scriptC

问题:是否可以将相同的参数作为参数传递给scriptA,然后最终传递给scriptC?
脚本被称为:
scriptB "$@"并且scriptB最终确实如此scriptC —param1 —param2

linux shell-script
  • 1 个回答
  • 132 Views
Martin Hope
Jim
Asked: 2018-04-05 23:51:18 +0800 CST

连接由空格分隔的特定字段

  • -1

我有一个由空格分隔的字符串,我需要连接第二个和第三个“单词”/字段,以确保如果多个空格分隔单词/字段,则可以正确处理。
以下工作正常:

tr -s " " |cut -d ' ' -f2 -f3 | tr " " "-"  

我想知道有没有更简洁的方法来做到这一点?

text-processing command-line
  • 1 个回答
  • 190 Views
Martin Hope
Jim
Asked: 2018-03-31 03:20:34 +0800 CST

从函数中添加调试输出拼字游戏结果

  • 1

我有一个返回值的函数。
但我想添加一些echos 以便于调试。但这会破坏结果。
例子:

function foo {
   echo "In foo"
   VAR="1234"
   echo "Calculated item"
   echo "$VAR"
}

RESULT=$(foo)
echo "RESULT=$RESULT"

我期待得到1234.
相反,输出是:

RESULT=In foo  
Calculated item  
1234

解决此问题的正确方法是什么?

bash shell-script
  • 1 个回答
  • 55 Views
Martin Hope
Jim
Asked: 2018-03-30 00:35:07 +0800 CST

在一行中连接字段并删除尾随空格

  • 1

我有一个由空格分隔的 3 个字段的字符串。我想连接最后两个字段,-确保最后的换行符被删除。

以下作品:

echo -n "abc 1234 5679" | tr -s "" |cut -d ' ' -f2 -f3 | tr " " "-"  

我想知道有没有perl这个的在线人?

perl
  • 2 个回答
  • 54 Views
Martin Hope
Jim
Asked: 2018-03-29 04:52:53 +0800 CST

替换特定的线路保持标识

  • 3

我有一个带有缩进的文件。
我想替换特定行但保留缩进。
该文件有一行如

   \t\t     customerId = "123" // has indentation in the start of line

我正在运行这个:

sed  -e 's:^\s*customerId = "'${OLD_ID}'": customerId = "'${NEW_ID}':' file

这没有任何作用。我也知道,即使它有效,我也会弄乱缩进。我怎样才能解决这个问题?
注意:解决方案不一定是,sed但我希望它能够跨平台

更新
测试@Gilles Quenot 答案:

OLD_ID="1234"  
NEW_ID="5678"  
sed -E -i.bk "s:^(\s*)versionName = \"$OLD_ID\":\1versionName = \"$NEW_ID\":"   testfile   

样品测试:

name="Jim"
    customerId = "1234"

号码未被替换

text-processing sed
  • 2 个回答
  • 2647 Views
Martin Hope
Jim
Asked: 2018-03-29 02:17:37 +0800 CST

滚动bash中的数字增量

  • 0

我有一个代表一种版本的字符串。我想增加它,如果第二部分超过 9 到下一个更高的数字以下似乎有效。我想知道是否有更简洁的方法来做到这一点

FIRST=$(echo -n "$VERSION"| cut -d "." -f 1)  
SECOND=$(echo -n "$VERSION"|cut -d "." -f 2)  
SECOND=$((SECOND + 1))  
if [[ $SECOND -ge 10 ]]; then  
    SECOND="0"  

fi  
FIRST=$(($FIRST + 1))

NEW_NUMBER=$FIRST.$SECOND  

例子:

Input: 102.8 Output: 102.9     
Input: 102.9 Output: 103.0  
bash shell-script
  • 1 个回答
  • 627 Views
Martin Hope
Jim
Asked: 2018-03-28 02:14:58 +0800 CST

向脚本添加一些试运行选项

  • 0

我有一个接受参数的脚本,如果未设置,则使用默认值。

VALUE=$1
if [[ -z "$VALUE" ]];  
   VALUE=foo #some function returns the default  
fi  

然后脚本继续做一些事情。
我想“增强”它并提供一些dry run选择。所以如果通过了,我们就会有类似的东西

if [[ -z "$DRY" ]];  
  echo "command x y z"  
else 
  command "x" "y" "z"  
fi  

我怎样才能做到这一点?

bash shell-script
  • 1 个回答
  • 10597 Views
Martin Hope
Jim
Asked: 2018-03-27 03:36:37 +0800 CST

bash 特殊参数 $@ 是否被视为 printf 中的循环?

  • 5

所以我正在测试以下内容:

foo() {  
  printf "\nAll the parameters, each on a separate line:\n"  
  printf "param: %s\n" "$@"  
}  

foo The "nicely colored" rainbow  

输出是:

All the parameters:  
param: The
param: nicely colored
param: rainbow

因此,如果我理解正确,因为IFS设置为\t\n我们得到由制表符分隔的参数(的第一个字符IFS)。
但是为什么它们打印在不同的行中?
是每个参数的 printf 运行。即 bash 是否将其转换为 for 循环?
以下(不带双引号)也输出相同的结果:

printf "param: %s\n" $@

bash shell-script
  • 1 个回答
  • 1233 Views
Martin Hope
Jim
Asked: 2018-03-22 03:04:09 +0800 CST

这个参数扩展有什么作用?

  • 1

以下具体是做什么的?

MY_VAR=${MY_INPUT##*$'\n'}
bash shell-script
  • 1 个回答
  • 64 Views
Martin Hope
Jim
Asked: 2018-03-17 05:54:11 +0800 CST

为什么 bash 中的正则表达式仅在它是变量而不是直接的情况下才有效?[复制]

  • 5
这个问题在这里已经有了答案:
shell 测试多行字符串是否在最后一行包含指定的模式 3 个答案
4年前关闭。

那么为什么以下工作,即打印出比赛:

THE_REGEX='^test\/version[0-9]+([.][0-9]+)+$'
if [[ "$SOME_VAR" =~ $THE_REGEX ]]; then
    echo "Match!"
fi

但以下不是:

if [[ "$SOME_VAR" =~ '^test\/version[0-9]+([.][0-9]+)+$' ]]; then
    echo "Match!"
fi  

有什么区别?这是同一个正则表达式

bash shell-script
  • 1 个回答
  • 7104 Views
Martin Hope
Jim
Asked: 2017-12-14 11:54:17 +0800 CST

找出哪个进程派生了太多线程

  • 6

我在 Linux 安装中有一个进程,在某些时候会出现某种峰值,并通过系统允许的最大线程/进程数。我通过ps -elfT | wc -l反复检查发现了这一点。

但我不知道究竟是什么导致了这个峰值。
的输出ps -elfT有很多信息,但我不能轻易理解是否有一些子进程在分叉中做某种“模糊”并弄得一团糟。

我怎么能弄清楚呢?

示例:ps -elfT | cut -d' ' -f3 | sort |uniq给我当时正在运行的进程。我如何添加计数以查看每个计数对总数的贡献?

monitoring process
  • 1 个回答
  • 3410 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve