Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.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
Linux Bash脚本使用";从另一个文件中提取变量凭据;。“文件名”;_Linux_Bash_Ubuntu 18.04_Windows Subsystem For Linux - Fatal编程技术网

Linux Bash脚本使用";从另一个文件中提取变量凭据;。“文件名”;

Linux Bash脚本使用";从另一个文件中提取变量凭据;。“文件名”;,linux,bash,ubuntu-18.04,windows-subsystem-for-linux,Linux,Bash,Ubuntu 18.04,Windows Subsystem For Linux,在Windows10上运行Ubuntu18.04子系统,但也尝试在Ubuntu18.04谷歌云虚拟机上运行 我已经意识到,将我的登录凭证烘焙到脚本中是一个相当愚蠢的想法,不仅是因为安全风险,而且因为如果我更改密码,我将不得不编辑每个脚本 我发现,当我使用“.file”运行脚本时,我应该能够拥有一个包含我的凭据的文件,并将它们“内联”起来,但是当我运行脚本时,它只会返回一个错误,即找不到该文件 在我运行脚本的目录上使用ls,包含: test.sh 凭证 “凭证”文件内容 错误消息 我试着在脚本

在Windows10上运行Ubuntu18.04子系统,但也尝试在Ubuntu18.04谷歌云虚拟机上运行

我已经意识到,将我的登录凭证烘焙到脚本中是一个相当愚蠢的想法,不仅是因为安全风险,而且因为如果我更改密码,我将不得不编辑每个脚本

我发现,当我使用“.file”运行脚本时,我应该能够拥有一个包含我的凭据的文件,并将它们“内联”起来,但是当我运行脚本时,它只会返回一个错误,即找不到该文件

在我运行脚本的目录上使用
ls
,包含:

  • test.sh
  • 凭证
“凭证”文件内容 错误消息 我试着在脚本的“.credential”行之间的空格处乱搞,试图找出我在网上可能做错了什么,但无法通过谷歌搜索正确地找到相关答案


有人能确认我在这里遗漏了什么/不知道什么,或者给我指一些可能有用的文档吗?这是我第一次尝试这样做,如果这是一个基本问题,我道歉

使用路径查找来查找由其参数命名的文件。由于当前工作目录通常不在您的
路径
(也不应该在该路径中),
将找不到该文件。相反,使用

. ./credential
绕过
路径
查找


但这并不安全,因为现在您只能从正确的目录运行脚本。将
credential
放入
路径上的目录中,或者使用绝对路径指定
凭证
的位置。

您可以检查.netrc是否适用于您基本检查:您是否从您的
凭证
文件所在的文件夹运行脚本?运行
test.sh
时的当前目录是什么?运行它的确切命令是什么?其中的目录是
凭证
。请回答您的问题以添加此信息,不要在评论中回答。@Poshi是的,我正在与
test.sh
脚本相同的文件夹中运行
凭证文件
。请注意
。文件名
路径
中搜索
文件名
。如果
路径
不包含
,则在当前目录中找不到
文件名
。您可能需要使用类似于
的东西/文件名
$(dirname$0)/filename
,具体取决于当前工作目录中是否有
filename
,或者与调用脚本位于同一目录中。如果
credential
预期与调用脚本位于同一目录中,则可以使用
$(dirname$0)/凭证
。。。。除了你应该引用它的健壮性:
。“$(目录名“$0”)”/credential
#!/bin/bash

set -eu

DS=$(date "+%Y-%m-%d" -d "11 days ago")
DE=$(date "+%Y-%m-%d" -d "1 day ago")

. credential

rm -f cookiejar

curl  /dev/null -s -S -L -f -c cookiejar 'https://url/auth/authenticate' -d name=$USER -d passwd=$PWD
+ set -eu
+ date +%Y-%m-%d -d 11 days ago
+ DS=2020-01-05
+ date +%Y-%m-%d -d 1 day ago
+ DE=2020-01-15
+ account=465
+ . credential test.sh: 9: .: credential: not found
. ./credential