[英]Linux permissions — can't write to directory which has all permissions set to allow all
[英]linux device which don't allow to write on it
我有一个脚本,它会向一些单独的文件写一些警告(它的名称作为参数传递)。 如果出现警告,我想使此脚本失败。
因此,我需要传递一些文件名,如果有人尝试在其中写入文件,则该文件名将引发错误。 我想使用一些或多或少的惯用名称(以将其包含在脚本的手册页中)。
所以,假设我的脚本是
# myScript.sh
echo "Hello" > $1
如果我用
./myScript.sh /dev/stdin
它不会失败,因为/ dev / stdin不是只读设备(令人惊讶的是!)
./myScript.sh /
它失败了,因为我想要它(因为/是目录,所以不能在那儿写)。 但是不是惯用的。
有一些漂亮的方法吗?
if [ -w "$1" ]
then
echo "$Hello" > "$1" # Mind the double-quotes
fi
是您要寻找的。 如果您只有一个参数,则下面的方法甚至更好。
if [ -w "$*" ]
then
echo "$Hello" > "$*" # Mind the double-quotes
fi
$*
用于容纳非标准文件名。 "$*"
将多个参数组合成一个单词。 检查[this] 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.