Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 在shell中使用exec打开文件失败_Bash_File_Shell - Fatal编程技术网

Bash 在shell中使用exec打开文件失败

Bash 在shell中使用exec打开文件失败,bash,file,shell,Bash,File,Shell,需要打开一些文件以便在shell中读取: exec 4<$lock 有什么见解吗?看起来像是exec正在尝试运行一个名为4的程序 我可以通过在4和之间放置一个空格来重现该错误消息。我已通过首先生成一个cmd并对其求值来修复此问题。所以我认为这是一个扩展问题。仍然不知道确切原因。$lock的值是多少?如前所述,如果$lock为空,则会出现“不明确重定向”错误;如果它引用了一个不存在的文件,则会出现相应的“未找到文件”错误;如果$lock是可读的,那么您将获得成功。您遇到的错误强烈表明您尝试

需要打开一些文件以便在shell中读取:

exec 4<$lock

有什么见解吗?

看起来像是
exec
正在尝试运行一个名为
4
的程序


我可以通过在
4
之间放置一个空格来重现该错误消息。我已通过首先生成一个cmd并对其求值来修复此问题。所以我认为这是一个扩展问题。仍然不知道确切原因。
$lock
的值是多少?如前所述,如果
$lock
为空,则会出现“不明确重定向”错误;如果它引用了一个不存在的文件,则会出现相应的“未找到文件”错误;如果
$lock
是可读的,那么您将获得成功。您遇到的错误强烈表明您尝试时
4
后面有空格。我不认为修补
IFS
会把事情搞砸。因此,在缺乏一个完整的、可复制的脚本的情况下(以及一些关于您试图避免问题的讨论),我将其归类为“操作员错误”。锁是一个设置了读取权限的文件。我向你保证,4和4之间不存在空格
Line 196: exec: 4: not found
$ ( exec 4 <somefilename )
bash: exec: 4: not found