以下是文件名:
-rwxrwxrwx 1 user1 users 268 Sep 16 18:06 script
什么应该是grep第一个角色的命令?
基于此我想得出结论该项目是文件,目录还是软链接.
我们可以使用通配符"^"来获取此信息吗?
这是错误的方式来判断某些东西是否是符号链接; 你永远不应该解析输出ls,仅供人类消费.相反,使用test原语:
for name in *; do
if test -L "$name"; then echo "symlink: $name"
elif test -f "$name"; then echo "regular file: $name"
elif test -d "$name"; then echo "directory: $name"
elif test -b "$name"; then echo "block device: $name"
elif test -c "$name"; then echo "character device: $name"
elif test -p "$name"; then echo "named pipe (FIFO): $name"
elif test -S "$name"; then echo "socket: $name"
else echo "other: $name"
fi
done
Run Code Online (Sandbox Code Playgroud)
以上也可以写为[ -L "$name" ],[ -f "$name" ]等; 就像有一个命名的shell内置命令test和一个名为的可执行文件一样/usr/bin/test,还有一个命名的shell内置命令[和一个类似的可执行文件/usr/bin/[(除了要求它的最后一个参数外,它的行为方式完全相同]).
回答你的文字问题,解决如何最好地解决你的实际/潜在问题:
在shell中的字符串中有内容后,可以执行参数扩展以获取第一个字符:
s=abc # or s=$(...some command here...), or so forth
echo "${s:0:1}" # this returns "a"
Run Code Online (Sandbox Code Playgroud)
要获取流的第一个字符(例如来自管道命令的stdout),您可以简单地使用head -c 1:
echo "abc" | head -c 1 # this also returns "a"; echo can be replaced with any other command
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |