Google Colab 控制台中的 Shell 变量

问题描述 投票:0回答:1

我正在使用 Google Colab,我想将这两个文件以今天的日期保存到我的云端硬盘中,但这似乎不起作用。我该如何解决这个问题?

输入

!read -p "Please enter today's date: " d
!cp f1_${d}.csv "drive/My Drive"
!cp f2_${d}.csv "drive/My Drive"

输出

Please enter today's date: 08-01-21
cp: cannot stat 'f1_/bin/bash8-01-21.csv': No such file or directory
cp: cannot stat 'f2_/bin/bash8-01-21.csv': No such file or directory

我希望输出文件为

f1_08-01-21.csv
f2_08-01-21.csv

bash google-colaboratory
1个回答
5
投票

这不起作用的原因是每个

!command
都在单独的子 shell 中运行。
read -p
运行,然后退出,并且它读取的变量不再可用,类似于如果您关闭并重新打开笔记本并尝试评估依赖于您在重新启动后尚未评估的早期代码块的代码块,会发生什么情况。

无论如何你都不需要手动输入今天的日期;你的电脑已经知道了。

!cp "f1_$(date +%F).csv" "drive/My Drive"
!cp "f2_$(date +%F).csv" "drive/My Drive"

如果您想要的日期格式不是

%F
(即 YYYY-MM-DD),请根据喜好进行调整。 (但请记住,以计算机可读格式显示日期是有意义的;“2 Aug 2021”读起来很愉快,但处理起来很麻烦。您尝试使用的格式是
date +%d-%m-%Y
,这很容易恢复,但很难正确排序。类似地,将机器可读的日期转换为人类可读的“令人愉快的”日期以用于显示目的,但反之则很麻烦或有时不可能。)

© www.soinside.com 2019 - 2024. All rights reserved.