如何使用awk对$ PATH进行标记?

lym*_*ose 1 bash awk

如何使用awk对$ PATH进行标记?

我试了3个小时,但它完全搞砸了.

#!/bin/bash

i=1

while true; do
  token=$($echo $PATH | awk -F ':' '{print $"$i"}')

  if [ -z "$token" ]; then
    break
  fi  

  ((i++))

  if [ -a "$TOKEN/$1" ]; then
    echo "$TOKEN/$1"
    break
  fi  

  break
done
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,我得到了

/home/$USERID/bin/ff: line 6: /home/$USERID/bin:/usr/local/symlinks:/usr/local/scripts:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/$USERID/bin: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我该如何更改我的程序?

har*_*rpo 6

你想做什么?

这将允许您针对各个路径进行迭代:

echo $PATH | tr ':' '\n' | while read line; do echo $line; done
Run Code Online (Sandbox Code Playgroud)

正如@SiegeX所说,更短的版本可以使用

echo $PATH | while read -d ':' line; do echo $line; done
Run Code Online (Sandbox Code Playgroud)