I have a script that needs to create temporary files for its work, and clean up after itself. My question is about finding the right base directory for the temporary files.
The script needs to work on multiple platforms: Git Bash (Windows), Solaris, Linux, OSX. On each platform, the preferred temp directory is expressed differently:
%TMP% (and possibly %TEMP%)$TMPDIR$TMPDIR but appears to be unset on multiple systems I triedSo …
Bash 似乎区分已导出的变量和未导出的变量。
例子:
$ FOO=BAR
$ env | grep FOO
$ set | grep FOO
FOO=BAR
Run Code Online (Sandbox Code Playgroud)
set看到变量但env没有。
$ export BAR=FOO
$ env | grep FOO
BAR=FOO
$ set | grep FOO
BAR=FOO
FOO=BAR
Run Code Online (Sandbox Code Playgroud)
set看到两个变量,但env只看到导出的变量。
我知道这set是一个内置的 bash 而env不是。
导出的变量和不导出的变量之间有什么区别?
该date命令的 GNU 实现有一个很好的功能,可以显示参考文件的最后修改日期。然后使用该+FORMAT参数可以轻松获取任何格式的日期,例如:
date -r /etc/motd +%Y%m%d_%H%M%S
# output in the format: 20121001_171233
Run Code Online (Sandbox Code Playgroud)
在 Solaris 中是否有类似的东西?作为一种解决方法,我使用这样的stat功能来做到这perl一点:
perl -mPOSIX -e 'print POSIX::strftime("%Y%m%d_%H%M%S\n", localtime((stat("/etc/motd"))[9]))'
Run Code Online (Sandbox Code Playgroud)
另一种选择是解析输出ls -Ego:
ls -Ego /etc/motd | awk '{print $4 "_" $5}' | tr -d :- | sed -e 's/\..*//'
Run Code Online (Sandbox Code Playgroud)
但ls众所周知,解析 的输出是一种不好的做法。
有更好/更简单/更优雅的解决方案吗?
我正在寻找有关如何在文件中搜索字符串的一部分并替换整行或将该字符串附加到该文件(如果未找到)的建议。我现在用 sed “玩”了一段时间,但无法让它按预期工作。
我需要补充:
/swapfile none swap sw 0 0
Run Code Online (Sandbox Code Playgroud)
到/etc/fstab(在Ubuntu 14.04 - Trusty Tahr 上)。
状况:
/swapfile中存在以开头的任何行/etc/fstab,请删除该行并替换为上面提供的字符串/swapfile发现多于一行,将它们全部删除并将上面的字符串附加到文件末尾/swapfile存在/etc/fstab,则将字符串附加到/etc/fstab我相信这是可能的,但我只是没有找到有关以我需要的方式使用 sed 的相关教程。
我使用过,sudo sed -i '$a/swapfile none swap sw 0 0' /etc/fstab
但这只会附加字符串:(
如何使用 CURL 通过特定的 post 参数发送二进制数据?例如在:
curl 'http://www.example.com' -H 'hi:hi' --data 'utf8=%E2%9C%93&_method=put&file=binarydatahere&submit=confirm'
Run Code Online (Sandbox Code Playgroud)
我想通过文件参数发送二进制数据,我听说过该--data-binary @myfile.bin方法,但我不知道如何指定二进制数据通过哪个参数。