重击-初始化变量以输出命令“ permission否认”

1 variables bash pipe

我正在编写一个小的bash脚本,以获取每个文件名中的数字。例如,文件名将helloworld1.txt产生1

尝试将输出设置为变量时i,每个文件都出现错误。

line 5: 985.txt: Permission denied
Run Code Online (Sandbox Code Playgroud)

如果我只是回显命令echo $f | tr -dc '[0-9]'而不是将其分配给变量,那么一切都很好。

#!/bin/bash

for f in *
do
        i=`$f | tr -dc '[0-9]'` // Permission denied.
        echo $i
done
Run Code Online (Sandbox Code Playgroud)

Ash*_*kan 5

您错过了这里的回声。线

i=`$f | tr -dc '[0-9]'`
Run Code Online (Sandbox Code Playgroud)

应该

i=`echo $f | tr -dc '[0-9]'`
Run Code Online (Sandbox Code Playgroud)