我正在尝试在 forloop 对象上运行 bash 命令,但它正在尝试查找文件而不是使用 forloop 对象。
例子:
输入文件包含以下格式的行 user:password
for item in $(cat myItems);do
USER = cat $item | cut -d ":" -f1
PASS = cat $item | cut -d ":" -f2
done
Run Code Online (Sandbox Code Playgroud)
这样做的结果是它说找不到文件 $item
我也试过
for item in $(cat myItems);do
USER = $(cat $item | cut -d ":" -f1)
PASS = $(cat $item | cut -d ":" -f2)
done
Run Code Online (Sandbox Code Playgroud)
如果你确实需要为文件的每一行运行一些命令,你会写:
while IFS=: read -r user password rest_ignored; do
something with "$user" and "$password"
done < myItems
Run Code Online (Sandbox Code Playgroud)
cat
是连接文件的命令,赋值语法var=value
周围没有空格=
。$(...)
可以在换行符上拆分命令的输出,但$IFS
前提是您正确设置并禁用通配符。