WH'*_*HeV 22 io bash file-descriptor exec
我想使用bash变量来指示文件描述符,如下所示:
id=6
file=a
exec $id<>$file
Run Code Online (Sandbox Code Playgroud)
但用法是错误的:
-bash: exec: 6: not found
Run Code Online (Sandbox Code Playgroud)
那么,如何使用变量来指示exec命令中的文件描述符?
Pau*_*ias 18
接受的答案是正确的,但是从bash 4.1开始,你可以使用自动文件描述符分配,在这种情况下你不需要eval:
file=a
exec {id}<>"$file"
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样使用它:
echo test >&${id}
Run Code Online (Sandbox Code Playgroud)
要么:
fsck -v -f -C ${id} /dev/something
Run Code Online (Sandbox Code Playgroud)
edu*_*ffy 14
您必须使用eval并将整个表达式放在引号中.
eval "exec $id<>$file"
Run Code Online (Sandbox Code Playgroud)
每次你想使用时都这样做$id.
| 归档时间: |
|
| 查看次数: |
6790 次 |
| 最近记录: |