command-substitution

如何使 bash 在内联执行错误时中止命令
command-substitution

如何使 bash 在内联执行错误时中止命令

Bash 中的命令替换(或者我所说的内联执行)$()允许文本返回;在执行主命令之前。如果 $() 返回错误代码,如何中止主命令 更具体地说,我想停止/防止尝试进行辅助内联执行。 Echo $(ls /devb/*) is better than $(ls /dev/*) 即如果“ls /devb/”返回非零退出代码,我不想运行 /dev 列表, 我的真实示例变得相当冗长,具体细节对于问题来说并不是非常重要,但简化版本是 Connect_to_foreign_system 1.1.1.1 /u:$(zenity <prompt for user>...

Admin

SSH for 循环:传递给变量中捕获的函数的参数未扩展
command-substitution

SSH for 循环:传递给变量中捕获的函数的参数未扩展

我有几台服务器,其中有几个文件,其中包含我需要解析的部署日期信息,并获取 2 个月或更早的文件的本地副本。 #!/bin/bash # split on new line not space # don't want to quote everything # globbing desired IFS=$'\n' servers=( blue red ) parseDate() { grep 'deploy_date:' $file | \ sed ... | \ # much mor...

Admin

使用反引号作为变量时查找匹配的“”时出现意外的 EOF
command-substitution

使用反引号作为变量时查找匹配的“”时出现意外的 EOF

下面的代码正在运行: [ec2-user@ip restore]$ echo $snap_name manual-test-2024-01-11-11-26-19 [ec2-user@ip restore]$ aws rds describe-db-cluster-snapshots --db-cluster-identifier creditpoc3 --query 'DBClusterSnapshots[].{DBClusterSnapshotIdentifier:DBClusterSnapshotIdentifier,Status:Status} |...

Admin

如何将参数扩展与命令替换一起使用?
command-substitution

如何将参数扩展与命令替换一起使用?

我想创建 12 个以月份命名的目录。因此,我尝试使用管道locale来获取月份名称,用tr逗号分隔它们,然后用大括号括起来并传递给mkdir.但整体被视为一根弦。有办法避免这种情况吗? 16:07: temp ⧲ mkdir {$(locale mon | tr \; ,)} 16:18: temp ⧲ ls -lh total 4.0K drwxr-xr-x. 2 john john 4.0K Dec 11 16:18 {January,February,March,April,May,June,July,August,September,Octob...

Admin

为什么 realpath --relative-to 在命令替换中不起作用?
command-substitution

为什么 realpath --relative-to 在命令替换中不起作用?

user@debian:~/test/B$ find .. .. ../A ../A/x ../A/y ../A/z ../B user@debian:~/test/B$ find ../A -type f -print0 |xargs -0 -i% realpath --relative-to=../A % x y z user@debian:~/test/B$ # But user@debian:~/test/B$ find ../A -type f -print0 |xargs -0 -i% echo $(realpath --relative-to=...

Admin

当简单地`| cat -`,我收到文件描述符错误
command-substitution

当简单地`| cat -`,我收到文件描述符错误

这是工作 diff 命令: $ diff -u <(echo 'foo:bar:baz' | tr : "\n") <(echo 'foo:baz' | tr : "\n") --- /dev/fd/11 2023-08-30 13:11:50 +++ /dev/fd/13 2023-08-30 13:11:50 @@ -1,3 +1,2 @@ foo -bar baz 我从 中添加管道的任何内容diff,每个命令都会失败并出现以下错误: $ diff -u <(echo 'foo:bar:baz' | tr : "\n") &l...

Admin

使用扩展变量解析命令
command-substitution

使用扩展变量解析命令

试图测试一些东西,但无论我尝试过什么方法,都没有完全解决它,所以不确定我是否愚蠢。 本质上,我需要将字符串解析为 ipa-getcert 的保存后参数,其中应包括证书续订的年份。这意味着该脚本将运行一次来​​请求证书,然后可以使用当前年份(简单)。但是,当 ipa-getcert 续订证书时,它将运行带有保存后参数的命令,此时必须使用续订年份。获取颁发的证书的整个字符串(包括保存后选项 [-C])是: sudo ipa-getcert request -N $CERT_CN -K HTTP/$CERT_CN -k /etc/ssl/private/${CER...

Admin

Bash 变量替换为 yq 命令
command-substitution

Bash 变量替换为 yq 命令

给定一个 YAML 文件example.yaml: node: sub_node: get_this: 我想获得一个包含get_this使用 Mike Farahyq和字符串的变量sub_node yaml="$(cat example.yaml)" nodename=sub_node sub_yaml= "$(echo "$yaml" | yq -r '.$nodename' )"; # also tried -> sub_yaml= "$(echo "$yaml" | yq -r '.'"$nodename" )"; 请注意,这是一...

Admin

命令替换不适用于环境变量
command-substitution

命令替换不适用于环境变量

我有这个命令,我想改变它。特别是我希望最新的参数存在取决于环境变量。 ansible-playbook --inventory inventories/ssg-dev deploy.yml --vault-id dev@~/ansible-password --skip-tags "clear-data" 这是我的尝试: ansible-playbook --inventory inventories/ssg-$ENVIRONMENT deploy.yml --vault-id $ENVIRONMENT@~/ansible-password $( [ $D...

Admin

使用 wc -l 循环监视行数增长
command-substitution

使用 wc -l 循环监视行数增长

我编写了一个简短的 bash 脚本来监视从循环接收结果的文件中的行计数增长(wc -l)。 因此: printf "Name of file to monitor\n" read file printf "How long to monitor file growth in minutes\n" read time printf "Interval between loops\n" read s a=$((time * 60)) # works out overall time in ...

Admin

我想要的是
command-substitution

我想要的是

我想要的是 简化的命令:echo "helloworld" | echo $1 我知道,这可以使用cat,但是如果像这样的命令echo不将文件作为输入怎么办? 我的实际命令:ls -li init.vim | cut -d " " -f 1 | find / -inum $1 我知道它不能$1像那样工作,这只是一个示例,并且$1只是一个占位符。 命令替换:find / -inum $(ls -li init.vim | cut -d " " -f 1) 这工作正常,但我不希望它与命令替换。 问题 ...

Admin

命令替换中的别名应该如何表现?
command-substitution

命令替换中的别名应该如何表现?

我用不同的 shell 测试了几个脚本,结果有所不同。 # test 1 foo(){ echo $(al);} alias al='echo 123' foo # test 2 alias al='echo 123' foo(){ echo $(al);} alias al='echo abc' foo # test 3 alias foo='echo $(' echo $(foo echo '123')) # test 4 alias foo='echo $(' echo "$(foo echo '123'))" # test 5 alias b...

Admin

将子命令分布在头命令上以避免两次写入相同的单词?
command-substitution

将子命令分布在头命令上以避免两次写入相同的单词?

我想尝试写这个命令: while read -r repo; do gh repo delete $repo; done <<< $(gh repo list --no-archived) 这基本上清理了我的 GitHub 并删除了我未归档的所有内容,因为我想将其保留为备份。 我希望有某种方法 - 不使用别名 - 不必优雅地写两次“gh repo”。将两个子命令“list”和“delete”传递到该“head”的某种方式,例如: gh repo $(list | while read -r repo; do delete $repo; d...

Admin

如何通过命令替换将多个值分配给数组?
command-substitution

如何通过命令替换将多个值分配给数组?

考虑以下 shell 脚本函数: #!/bin/bash declare -a dir function() { local -a directories=( "A/B/C D" "E/F G H" ) #Initialize local array. printf "%q " "${directories[@]}" #"Return" values of array in escaped form. } dir=( $(funcion) ) for i in "${dir[@]}"; do echo $i done 我...

Admin

tcsh shell 的递归历史搜索
command-substitution

tcsh shell 的递归历史搜索

在bash shell中,我通常使用CTRL+R来模糊搜索我最近执行的命令。然而,这似乎不适用于shelltcsh或cshshell。 我想了解是否/如何在tcsh/ cshshell 中进行相同的映射。 注意:我在某处看到ESC+P具有类似的效果,但它不是相同的键绑定。我希望有CTRL+R绑定在不同的 shell 上执行相同的任务。 非常感谢任何线索。非常感谢:)!! ...

Admin