/etc/xdg/lxsession/LXDE/autostart
실행하기 전에 일부 매개변수를 변경하고 싶습니다 . grep 명령에서 매개변수를 가져오고 있습니다. 파일 에 추가하고 싶은데 autostart
방법을 모르겠습니다.
현재 내가 가지고 있는 것은 grep "stuff" /file/one
1234 출력입니다.
autostart
1234를 다음과 같은 파일 에 넣고 싶습니다 .
....
@program 1234
....
답변1
항상 그렇듯이, 이를 수행하는 방법은 아마도 백만 가지가 있을 것입니다. 귀하의 질문을 제가 읽는 방식은 귀하가 문제에 잘못된 방식으로 접근하고 있다는 것입니다. 그러나 가장 먼저 해야 할 일이 있습니다.
사용자 이름과 비밀번호를 올바르게 입력하면 모든 스크립트가 /etc/X11/Xsession.d
알파벳 순서로 가져옵니다(실행되지 않음, 이는 매우 중요한 차이점입니다!). 따라서 로그인 후 데스크톱 환경이 시작되기 전에 일부 논리가 발생하도록 하려면 여기에 스크립트를 입력할 수 있습니다.
이와 같은 스크립트에는 다음을 넣을 수 있습니다.
for item in $(grep "stuff" /file/one)
do
echo "@program ${item}" >> /etc/xdg/lxsession/LXDE/autostart
done
그러면 파일에 추가하려는 줄이 추가됩니다. '>>'를 사용하면 쉘이 파일을 바꾸는 대신 파일 끝에 줄을 추가합니다. 이것이 귀하의 질문에 대한 답변입니다.
grep
이제 문제는 다음과 같습니다. 이와 같은 스크립트를 사용하면 컴퓨터에 로그인할 때마다 결과가 자동 시작 파일에 추가됩니다. 따라서 처음으로 프로그램이 한 번 실행됩니다. 다음에는 두 번 로그인하고, 다음에는 세 번 로그인하세요. 자동 시작 프로그램 목록은 grep이 자동 시작 파일에 추가되는 결과를 생성하는 한 계속해서 늘어납니다. 그렇기 때문에 처음에 문제에 접근하는 방식이 잘못되었다고 말한 것입니다.
게다가, 그것은 단지 글로벌한 것이 아닙니다 /etc/xdg/lxsession/LXDE/autostart
. ~/.config/lxsession/LXDE/autostart
각 개별 사용자에 대해 파일을 만들 수 있습니다 . 컴퓨터에서 작업하는 유일한 사용자라도 ~
전역 파일이 아닌 홈 디렉터리(홈 디렉터리로 확장됨)에 있는 파일을 편집해야 합니다.
마지막 제안으로, 프로그램을 실행하려면 ~/.config/lxsession/LXDE/autostart
위와 같은 for 루프를 수행하는 for 쉘 스크립트에 항목을 추가하고 일부 파일에 행을 추가하는 대신 실제로 명령을 실행하십시오. &
줄 끝에 .을 사용하여 명령을 실행하면 이러한 프로그램이 백그라운드에서 실행되고 스크립트가 차단되지 않습니다.